home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / Hack / MISC / HAKDIC.ZIP / HAKDIC.TXT next >
Encoding:
Text File  |  1989-05-26  |  230.0 KB  |  4,443 lines

  1.                        The Hacker's Dictionary
  2.  
  3.  
  4.  
  5.  
  6.               A Guide to the World of Computer Wizards
  7.  
  8.                           Guy L. Steele Jr.
  9.                            Donald R. Woods
  10.                           Raphael A. Finkel
  11.                             Mark R. Crisp
  12.                          Richard M. Stallman
  13.                         Geoffrey S. Goodfellow
  14.  
  15.  
  16.                               The Menu
  17.  
  18.    There are many dictionaries of computer buzzwords and jargon. This
  19. book is different. It is a dictionary of slang.
  20.    Jargon consists of technical words that are needed for very
  21. precise communication in a specialized subject. Economists, truck
  22. drivers, chemists, and steelworkers all use a specialized vocabulary to
  23. convey technical meanings.
  24.    Slang, on the other hand, is used for fun, for human communication
  25. rather than technical communication. Slang is often derived from
  26. jargon. When a bit of technical jargon is used in an extended or
  27. metaphorical way, it becomes slang.
  28.    Many "computer" words are making their way into everyday use.
  29. Thanks to the proliferation of home computers, many people have heard
  30. of bytes, RAM, memory banks, terminals, processors, and floppy disks.
  31.    You won't find those words defined here. This, we warn you, is
  32. supposed to be a fun book.
  33.    These are the words used for fun by the people who use computers
  34. for fun: the hackers. Here you will find almost nothing of those awful
  35. computer languages such as BASIC that can be written but not spoken.
  36. This book is, in fact, a revised version of the famous "jargon file",
  37. a dictionary of slang terms cooperatively maintained by hackers at
  38. advanced computer laboratories at Stanford University, The Mas-
  39. sachusetts Institute of Technology (MIT), Carnegie-Mellon University
  40. (CMU), and other places such as Yale University, Princeton University,
  41. and Worcester Polytechnic Institute (WPI). Some of these words are
  42. fairly new; others have been used for over two decades. Some arose in
  43. the computer laboratory; others were borrowed from other fields.
  44.    Our gang of six contributed to this file over the years, and to
  45. this revision for publication. (Steele coordinated the effort and did
  46. most of the polish work. Occasional first-person references in the main
  47. text are his unless otherwise identified). Many other hackers around
  48. the country, too numerous to list, made helpful suggestions; to them we
  49. are grateful. For this edition, pronunciation keys have been added for
  50. all those words that are not ordinary English words, and many cross-
  51. -references, examples, and explanatory notes have been added. We have
  52. tried to keep technical details to a minimum. A word is included only
  53. if it is amusing or unusual, or if it peculiarly illuminates some
  54. aspect if hacker culture.
  55.    We hope you enjoy this book.
  56.              Confessions of a Happy Hacker By Guy Steele
  57.  
  58.    I was a teen-age hacker.
  59.    When I was about twelve or so, a lab secretary at MIT who knew I
  60. was "interested in science" (it might be more accurate to say "a latent
  61. nerd") arranged for one of the computer hackers there to give me an
  62. informal tour. I remember stumbling around racks full of circuit boards
  63. and wires, a screeching cabinet that printed a full page every six
  64. seconds, and rows of blinking lights: the computer room was crammed
  65. full of equipment with no obvious organization. One set of gray
  66. cabinets had some trophies and plaques sitting on it: this was the
  67. PDP-6 computer that, running a program called MacHack, consistently won
  68. prizes by outwitting human players in chess tournaments. This PDP-6 was
  69. also versatile: it had two speakers and a stereo amplifier sitting on
  70. top of it. The hacker typed a couple of commands on a keyboard, and the
  71. PDP-6 burst into a Bach Brandenburg Concerto (no. 6, as I recall).
  72.    One part of that tour stands out most clearly in my mind. I was
  73. told to sit down in front of a large, round, glass screen, and given a
  74. box that had some buttons and a stick on the top. My hacker guide typed
  75. a command on the keyboard, and suddenly, green and purple space ships
  76. appeared on the screen! The purple one started shooting little red dots
  77. at the green one, which was soon obliterated in a multicolored shower
  78. of sparkles. The green ship was "mine", and the hacker had expertly
  79. shot it down. This was a color version of Space War, one of the very
  80. first video games.
  81.    Remember that this was years before "Apple" and "TRS-80" had
  82. become household words. Back then computers were still rather mys-
  83. terious, hidden away in giant corporations and university laboratories.
  84.    Playing Space War was fun, but I learned nothing of programming
  85. then. I had the true fascination of computers revealed to me in
  86. November, 1968, when a chum slipped me the news that our school (Boston
  87. Latin School, of Boston, Massachusetts) had an IBM computer locked up
  88. in the basement. I was dubious. I had earlier narrowly avoided buying
  89. from a senior a ticket to the fourth-floor swimming pool (Boston Latin
  90. has only three stories, and no swimming pool at all), and assumed this
  91. was another scam. So of course I laughed in his face.
  92.    When he persisted, I checked it out. Sure enough, in a locked
  93. basement room was and IBM 1130 computer. If you want all the specs:
  94. 4096 words of memory, 16 bits per word, a 15-character-per-second
  95. Selectric ("golf ball") printer, and a card reader (model 1442) that
  96. could read 300 cards per minute. Yes, this was back in the days of
  97. punched cards. Personal computers were completely unheard-of then.
  98. Nominally the computer was for the training of juniors and seniors, but
  99. I cajoled a math teacher into lending me a computer manual and spent
  100. all of Thanksgiving vacation reading it.
  101.    I was hooked.
  102.    No doubt about it. I was born to be a hacker. Fortunately, I
  103. didn't let my studies suffer (as many young hackers do), but every
  104. spare moment I thought about the computer. It was spellbinding. I
  105. wanted to know all about it: what it could and couldn't do, how its
  106. programs worked, what its circuits looked like. During study halls,
  107. lunch, and after school, I could be found in the computer room,
  108. punching programs onto cards and running them through the computer.
  109.  
  110.    I was not the only one. Very soon there was a small community of
  111. IBM 1130 hackers. We helped to maintain the computer and we tutored our
  112. less fanatical fellow students in the ways of computing. What could
  113. possibly compensate us for these chores? Free rein in the computer
  114. room.
  115.    Soon after that, I developed into one of the unauthorized but
  116. tolerated "random people" hanging around the MIT Artificial Intel-
  117. ligence Laboratory much as a groupie is to a rock band: not really
  118. doing useful work, but emotionally involved and contributing to the
  119. ambiance, if nothing else. After a while, I was haunting the computer
  120. rooms at off-hours, talking to people but more often looking for
  121. chances to run programs. Sometimes "randoms" such as I were quite
  122. helpful, operating the computers for no pay and giving advice to
  123. college students who were having trouble. Sometimes, however, we were
  124. quite a nuisance. Once, I was ejected from the Artificial Intelligence
  125. Laboratory by none other than Richard Greenblatt, the very famous
  126. hacker who wrote the MacHack program with which the PDP-6 had won its
  127. chess trophies. He threw me out because I was monopolizing the one
  128. terminal that produced letter-quality copy. (I was using the computer
  129. to write "personalized" form letters to various computer manufacturers,
  130. asking for machine manuals.) I deserved to be tossed out, and gave him
  131. no argument. But when you're hooked, you're hooked, and I was un-
  132. daunted: within a week or two I was back again.
  133.  
  134.    Eventually I got a part-time job as a programmer at MIT's Project
  135. MAC computer laboratory. There I became a full-fledged member of the
  136. hacker community, and ultimately an MIT graduate student.
  137.    I was never a lone hacker, but one of many. Despite stories you
  138. may have read about anti-social nerds glued permanently to display
  139. screens, totally addicted to the computer, hackers have (human) friends
  140. too. Often these friendships are formed and maintained through the
  141. computer.
  142.    At one time, the MIT Artificial Intelligence Laboratory had one
  143. common telephone number, extension 6765, and a public-address system.
  144. The phone was answered "six-seven-six-five", or sometimes "Fibonacci of
  145. twenty", since, as mathematician know, 6765 is the twentieth Fibonacci
  146. number. Through this number and the public-address system, it was easy
  147. to cal and reach anyone and everyone. In particular, one could easily
  148. ask, "Who wants to go for Chinese food?" and get ten or fifteen people
  149. for an expedition.
  150.    "Unfortunately", says MIT hacker Richard Stallman, "most of the
  151. people and terminals have moved to other floors, where the 6765 number
  152. does not reach. The ninth floor, the lab's ancient heart, is becoming
  153. totally filled with machines, leaving no room for people, who must move
  154. to other floors. Now I can't even call up and find out if anyone is
  155. hungry."
  156.    Stallman can, however, still call us all up using the computer.
  157. Through timesharing (where many people use one computer) and networking
  158. (where many computers are connected together), the computer makes
  159. possible a new form of human communication, better than the telephone
  160. and the postal system put together. You can send a message by elec-
  161. tronic mail and get a reply within two minutes, or you can just link
  162. two terminals together and have a conversation.
  163.    MIT has no monopoly on hackers. In the 1960s and 1970s hackers
  164. congregated around any computer center that made computer time
  165. vailable for "play". (Some of this play turned out to be very
  166. important work, but hacking is done mostly for fun, for its own sake,
  167. for the pure joy of it). Because universities tend to be more flexible
  168. than corporations in this regard, most hackers' dens arose in uni-
  169. versity laboratories. While some of these hackers were unauthorized
  170. "random people" like me, many hackers were paid employees who chose to
  171. stay after hours and work on their own projects -- or even continue
  172. their usual work -- purely for pleasure.
  173.    The hacker community became still larger and more closely knit in
  174. the early 1970s, when the government funded a project to see whether it
  175. would be useful to let the computers at dozens of universities and
  176. other sites "talk" to each other. The project succeeded and produced
  177. the famous ARPANET, a network that now links hundreds of computers
  178. across the country. Through the ARPANET, researchers can share
  179. programs, trade research results, and send electronic mail -- both to
  180. individuals and to massive mailing lists. Best of all, it allowed
  181. once-isolated hackers to talk to each other via computer.
  182.    The result is a nation-wide hackers' community, now one decade
  183. old. In some ways the community serves as a geographically dispersed
  184. think tank. When Rubik's Cube became popular, one hacker created an
  185. electronic mailing list of "Cube hackers". (Such mailing lists are
  186. routinely created for new topics of interest). The network buzzed, and
  187. continues to buzz, with exposition of some very deep mathematics in
  188. efforts to solve various puzzles about the Cube. What, for example, is
  189. the smallest number of twists required to solve the Cube? This question
  190. is still unanswered; but some progress has been make, and hackers
  191. across the country continue to discuss and to fret over its solution
  192. via computer.
  193.    Hackers do more than talk, however; they hack. Although no two
  194. people are alike, there are certain traits that are typical of hacker.
  195. The cardinal qualification is that hackers like to use computers. The
  196. word CYCLE, as used by hackers, refers to the fundamental unit of work
  197. done by a computer, so we say that hackers crave cycles. The more
  198. cycles available, the more a hacker gets out of the computer.
  199.    As a direct result of this craving, a hacker will frequently wake
  200. up at dinner time and go to bed after breakfast, or perhaps get up at
  201. noon and sack out a 4:00 A.M. (See the terms PHASE and NIGHT MODE for
  202. more information on hackers' sleeping schedules.) Hackers do this
  203. because the computer has its own circadian rhythms to which hackers
  204. willingly adjust themselves. These rhythms in turn grow out of the
  205. heavier demands for the computer during the day than at night. Hackers
  206. will therefore work late into the evening or night, when other computer
  207. users aren't competing for cycles. It's more fun, after all, to use the
  208. computer when it's responding at split-second speeds.
  209.  
  210.    Most such hackers are single. Hackers do get married, but the res-
  211. ponsibilities of family life don't always mix well with typical hacker
  212. life style. When I was at MIT, I would sometimes work nights for a
  213. month at a time. Now that I am married, I find that I can hack only in
  214. spurts, one or two days a week. This book, by the way, is a hack of
  215. sorts. The manuscript was prepared using a computer, and nearly all of
  216. the work was done after midnight.
  217.    The truly dedicated hacker does little else but eat, sleep, and
  218. hack. Of these activities, eating is the only social activity, so
  219. rather than eat at home alone, a hacker will usually go out to eat with
  220. his hacker friends. While hackers may sleep according to different
  221. schedules, most arrange to be awake and at the laboratory around 6:00
  222. P.M., at which time one or more dinner expeditions usually head out.
  223.    For some reason, Chinese food is particularly favored by most
  224. hackers. You will find several references to Chinese Szechuan and Hunan
  225. cuisine in this dictionary. Other spicy cuisines, such as Mexican and
  226. Indian, are also enjoyed by hackers, but Chinese is the definite
  227. favorite.
  228.    Many shorthand expressions have developed for discussing food and
  229. local restaurants. At MIT one might hear:
  230. "Foodp?"; "Smallp?"; "T."; "T!"
  231.  Translated, this means roughly:
  232.  "Do you want to eat now?"
  233.  "Maybe; what do would you think of going to Joyce Chen's Small
  234. Eating Place?"
  235.  "Okay by me."
  236.  "Then I'll join you!"
  237.  
  238.    When you walk up to the terminal of a time-shared computer, the
  239. first thing you must do is to "log in", that is, tell the computer who
  240. you are. To do this, you type your "computer i.d." or "login name".
  241. Different computers have different ideas of what a login name should
  242. be. Some use numbers or other codes (see the entry for PPN), some use
  243. your last name, some use your initials. Many computers limit login
  244. names to either three or six characters, so full names or last names
  245. can't be used in general.
  246.    As a result everyone acquires a login name, which you need to know
  247. to communicate with other hacker via computer. A login name serves in
  248. much the same way as a CB "handle". I have friends whom I know only by
  249. login name; I have no idea what their real names are. Once, at a
  250. wedding, I ran into a good hacker friend who was also a guest there. I
  251. recalled his login name instantly, but was embarrassed that I couldn't
  252. immediately remember his real name in order to introduce him to a third
  253. person. It was SWAPPED OUT.
  254.    Login names are often used as nicknames, pronounces if possible
  255. and spelled if necessary. My wife and I met at MIT, and she still calls
  256. me "Gliss", because my login name was GLS. "Guy" sounds very weird to
  257. her. Some hackers (including Richard Stallman) actually prefer to be
  258. called by their login name.
  259.    Because of the design and use of computers depend on other
  260. branches of science, a hacker has to have some knowledge of ma-
  261. thematics, physics, electronics, and other disciplines. Hackers
  262. typically have many other interests as well: science fiction, music,
  263. and chess are particularly popular.
  264.    The common them, however, is the love of the computer. Hackers
  265. discuss science fiction through computerized mailing lists. A hacker is
  266. less likely to listen to music than to program a computer to play
  267. music. A hacker who can play only a middling game of chess can write a
  268. program that wins chess tournaments. Such are the compensations of a
  269. life at the keyboard.
  270.                                           Happy hacking!
  271.  
  272.  
  273.  
  274.                 A Hackish Note on How to Use This Book
  275.                    By Raphael Finkel and Don Woods
  276.  
  277.    While hackers necessarily design and use unspeakable languages to
  278. control computers, they also have an unusual spoken language. Just as
  279. strange language had first attracted many of us to computers, we were
  280. struck by the queer vocabulary hackers would use to describe not only
  281. computer-related things but the wide world as well. Finkel decided to
  282. build a lexicon of the strange words and expressions that set this
  283. community apart, and the rest of us added to it over the years.
  284.    A lot of our slang can be figured out from context. Don Woods once
  285. told a waitress, "I think we're ready to go, MODULO paying the check".
  286. And there's the time he asked a flight attendant to "please SNARF me a
  287. magazine". Neither of them batted an eye. It is the most commonly used
  288. jargon words -- the ones loaded with subtle connotations accumulated
  289. over the years -- that are the hardest to define.
  290.    This book is arranged as a dictionary, and you may skip around
  291. reading individual definitions if you please. However, definitions
  292. occurring later in the book purposely build on earlier ones, and we
  293. think you will get more fun out of it if you read the book straight
  294. through in alphabetical order.
  295.    We want to warn the reader that not all the expressions you will
  296. find here are in common use. Many are regional; some are obsolete. Some
  297. are used every day, and others are heard only occasionally. To give you
  298. an idea, here is a list of out favorite and perhaps most frequently
  299. used words:
  300.  
  301.       BAR                     BOGOSITY          CRUFTY
  302.       BARF                    BOGUS             FEATURE
  303.       BAZ                     BUG               FLAME
  304.       BELLS AND WHISTLES   CANONICAL         FLAVOR
  305.       FLUSH                   LOSER             PHASE OF THE MOON
  306.       FOO                     MAGIC             RANDOM
  307.       FOOBAR                  MOBY              THE REAL WORLD
  308.       FROB                    MODULO            SNARF
  309.       HACK                    MUMBLE            VANILLA
  310.       KLUDGE                  PHASE             WIZARD
  311.  
  312.    By and large, computer people have an enormous range of in-
  313. tellectual interests; you will see this fact reflected in the lexicon.
  314. While they use slang for fun, most computer people are highly literate,
  315. highly articulate, and sticklers for grammar. Don't expect to impress
  316. people by overusing the words you find here. They are the spice, not
  317. the bread and butter, of everyday conversation.
  318.  
  319.                        Grokking Hacker Grammar
  320.  
  321.    For the most part, hackerese fits within the framework of ordinary
  322. English speech. There are but a few rules, however, that are unusual in
  323. everyday English but are very commonly used in hackerese. (These extra
  324. rules of grammar reflect the fact that hackers enjoy playing with
  325. language. Most are quite aware of when they are breaking the rules of
  326. standard English).
  327.  
  328. Verb doubling
  329.  
  330.    A standard construction in English is to double a verb and use it
  331. as an exclamation, such as "bang, bang!" or "quack, quack!". Most of
  332. these are names for noises. Hackers also double verbs as a concise,
  333. sometimes sarcastic, comment on what the implied subject does. Also, a
  334. doubled verb is often used to terminate a conversation -- in the
  335. process, remarking on the current state of affairs or what the speaker
  336. intends to do next. Verbs frequently doubled include WIN, HACK, FLAME,
  337. BARF, and CHOMP. Typical examples of usage:
  338.    "The disk heads just crashed. Lose, lose."
  339.    "Mostly he just talked about his latest crock. Flame, flame."
  340.    "I think I'll go fix that bug now. Hack, hack!"
  341. Standard doublings with subtle connotations are listed individually in
  342. the lexicon.
  343.  
  344. Sound-alike Slang
  345.  
  346.    In the manner of cockney rhyming slang, hackers will often make
  347. rhymes or puns in order to convert an ordinary word of phrase into
  348. something more interesting. It is particularly FLAVORFUL if the phrase
  349. is bent so as to include some other slang word; thus, the computer
  350. hobbyist magazine Dr. Dobb's Journal is almost always referred to among
  351. hackers as Dr. Frob's Journal. Terms of this kind in fairly wide use
  352. include names for newspapers:
  353.    Boston Herald American becomes Horrid (or Harried) American.
  354.    Boston Globe becomes Boston Glob.
  355.    San Francisco Chronicle becomes the Crocknicle.
  356.    New York Times becomes New York Slime
  357. Other standard terms include:
  358.    "For historical reasons" becomes "for hysterical raisins"
  359. "Margaret Hacks Hall" (a building at Stanford) becomes "Marginal
  360. Hacks Hall".
  361. "Government property -- do not duplicate" (seen on keys at MIT) is
  362. usually quoted as "Government duplicity -- do not propagate"
  363.  
  364. The -P Convention
  365.  
  366.    This rule is unique, used by no one but hackers. A word or phrase
  367. is turned onto a yes/no question by appending the letter P, which is
  368. pronounced as a separate syllable when spoken. This rule is derived
  369. from a convention of LISP programming language, where the letter P at
  370. the end of a name denotes a "predicate" -- that is, a function that
  371. returns "true" or "false" as its result.
  372.    For example, the question "Foodp?" (pronounced "food'pee", with
  373. the voice rising as for any question) means "Do you want to eat now?"
  374. The question "Colleen's-p?" is more specific: "Do you want to go eat at
  375. Colleen's Chinese cuisine (a favorite restaurant near MIT)?" "Lose-p?"
  376. means "Are you LOSING?" or "Is it LOSING?". And so on.
  377.    As a special case, the question "State-of-the-world-p?" means
  378. "What's going on?" or "What are you doing (or about to do)?" The -P
  379. convention is used for this even though it isn't a yes/no question. A
  380. typical answer might be "The SYSTEM just CRASHED" or "I'm about to
  381. GRONK OUT". If the responder is feeling silly or obstinate, however, he
  382. will insist on interpreting it as a yes/no question after all, and
  383. respond with "Yes, the world has a state."
  384.    The -P convention is often applied to new words at the spur of the
  385. moment. The best of these is a GOSPERISM (that is, invented by R.
  386. William Gosper). When we were at a Chinese restaurant, he wanted to
  387. know whether someone would like to share with him a two-person-sized
  388. bowl of soup. His inquiry was "Split-p soup?" and everyone instantly
  389. knew what he meant. (After all, split pea soup was not on the menu).
  390.  
  391. Overgeneralisation
  392.  
  393.    Hackers love to take advantage of the inconsistencies of English
  394. by extending a general rule to cases where it doesn't apply. Children
  395. routinely do this when they say "teached" for "taught" or "He goed
  396. there" for "He went there". Hackers do this quite intentionally for
  397. more complicated words. One example:
  398.    "Generous" becomes "generosity".
  399.    "Porous" becomes "porosity".
  400.    "Curious" becomes "curiosity".
  401. Therefore:
  402.    "Mysterious" becomes "mysteriosity".
  403.    "Obvious" becomes "obviosity".
  404.    "Dubious" becomes "dubiosity".
  405. Less clearly:
  406.    "Bogus" becomes "bogosity".
  407. And, perhaps:
  408.    "Ferrous" becomes "ferocity"!
  409. Other examples: winnitude, disustitude, hackitude, hackification.
  410.  
  411. Spoken Inarticulations
  412.  
  413.    Words such a "mumble", "sigh", and "groan" are spoken in places
  414. where their referent might more naturally be used. It has been
  415. suggested that this usage derives from the impossibility of re-
  416. presenting such noises in conversation by computer (see COM MODE); one
  417. gets so used to typing "Sigh!" to indicate a sigh that one soon
  418. develops the vocal habit  of saying the word instead of actually
  419. sighing. Another expression sometimes heard is "complain!" (meaning not
  420. "You, complain!" but "I have a complaint!")
  421.  
  422. How to Make Hacker Noises
  423.  
  424.    Many of the words in this dictionary are ordinary English words
  425. that have acquired new meanings. Some appear to be English words but
  426. are pronounced differently, and many are new words. To keep things
  427. simple, we have included pronunciations only in the unusual cases. If
  428. no pronunciation is given for a word, it should be pronounced as an
  429. ordinary English word.
  430.    Also for simplicity, we do not use the complicated alphabets and
  431. pronunciation marks used in most dictionaries. These alphabets, such as
  432. the International Phonetic Alphabet, allow a very precise description
  433. of pronunciation but are hard to read if you're not familiar with them.
  434.    We use the following simplified system: Syllables are separated by
  435. hyphens, except that an apostrophe follows an accented syllable.
  436. Consonants are pronounced as they usually are in English. The letter g
  437. is always hard, as in "got" rather than in "giant"; ch is always soft,
  438. as in "child" rather than "chemist". The letter s is always as in
  439. "pass", never a z sound as in "has"; but to prevent confusion, ss is
  440. sometimes used at the end of a syllable to emphasize this. Other
  441. consonants are also occasionally doubled for the same reason. The
  442. letter h always contains the leading d sound as used twice in "judge".
  443. Vowel sounds are represented as shown in the following table:
  444.          a     back, that
  445.          ay    bake, rain
  446.          ah    cot, father
  447.          aw    flaw, caught
  448.          e     less, men
  449.          ee    easy, ski
  450.          i     trip, hit
  451.          ie    life, sky
  452.          ow    out, how
  453.          oh    flow, sew
  454.          oy    boy, coin
  455.          uh    but, some
  456.          u     put, foot
  457.          oo    loot, through
  458.          y     yet
  459.          yoo   few
  460.  
  461.    A colon -- ":" -- is used for the "schwa" sound that is often
  462. written as an upside-down e. For example, the pronunciation of "kitten"
  463. would be kit':n, and of "magical" would be maj'i-k:l.
  464.  
  465.  
  466. Some Overflow in PDL
  467.  
  468.    Various abbreviations are used throughout these definitions. Most
  469. refer to computer hardware and software. For example, one of the
  470. favorite computer languages in our hacker community is LISP. The two
  471. poles of the hacker's network that compiled this dictionary are the
  472. artificial intelligence laboratories at Stanford and MIT, and LISP has
  473. always been one language of choice for artificial intelligence
  474. research. A particular computer, the Digital Equipment Corporation
  475. (DEC) PDP-6, and its successors (the PDP-10 and DECSYSTEM-20) have
  476. until recently been the computers of choice for running LISP. The
  477. consequence is that technical words from the LISP language and the
  478. PDP-10 computer will occasionally appear in this dictionary. The EMACS
  479. text editor, also referred to, was one of the first "display editors"
  480. to be widely distributed. It is used as a standard against which new
  481. text editors for personal computers are measured. We have tried to keep
  482. such words to a minimum throughout.
  483.  
  484.  
  485.  
  486.  
  487. AOS (owss [East coast], ay'ahss [West coast]) verb.
  488.    1. To add one to a number. Example: "Every time the computer finds
  489. a bad file it aoses the bad-file counter".
  490.    2. More generally, to increase the amount of something. Example:
  491. "Aos the campfire" means "Add more wood to the campfire". Silly.
  492. Antonym: SOS
  493.    This word is the name of a PDP-10 instruction that takes any
  494. memory location in the computer and adds one to it. AOS means "Add One
  495. and do not Skip". Why, you may ask, does the S stand for "Do not Skip"
  496. rather than "Skip"? Ah, here is a beloved piece of PDP-10 folklore.
  497. There are eight such instructions: AOSE adds One and then Skips the
  498. next instruction if the result is Equal to zero; AOSG adds One and then
  499. Skips if the result is Greater than zero; AOSN adds One and then Skips
  500. if the result is Not zero; AOSA adds One and then Skips Always; and so
  501. on. Just plain AOS doesn't say when to skip, so it never skips. For
  502. similar reasons, AOJ means "Add One and do not Jump". Even more
  503. bizarre, SKIP means "Do not SKIP"! If you want to skip the next
  504. instruction, you must say "SKIPA". Likewise, JUMP means "Do not JUMP".
  505.  
  506. ARG (ahrg) noun.
  507.    An argument, in the mathematical sense only: a quantity accepted
  508. by a function or procedure. Example: "The sine function takes one arg,
  509. but the arc-tangent function can take either one or two args".
  510.    This is an abbreviation that has become a new word in its own
  511. right, just as "telephone" and "pianoforte" have become "phone" and
  512. "piano". Arguments to mathematical functions and computational
  513. procedures are discussed so frequently by hackers that this ab-
  514. breviation saves a lot of time.
  515.  
  516. AUTOMAGICALLY (aw'toh-maj'i-k:l-lee, aw'toh-maj'i-klee) adverb.
  517.    Automatically, but in a way which, for some reason (typically
  518. because it is too complicated, or too ugly, or perhaps even too
  519. trivial), the speaker doesn't feel like explaining. Example: "File that
  520. have a name ending in 'TMP' are automagically deleted when you log
  521. out". (This means "When you say good-bye to the computer, files with
  522. names ending in 'TMP' are deleted. How this happens is complicated and
  523. I don't want to get into it just now. Trust me, it works.")
  524.    See MAGIC
  525.  
  526. BAGBITER (bag'bie-t:r) noun.
  527.    1. Something, such as a program or a computer, that fails to work
  528. or that works in a remarkably clumsy manner. Example: "This text editor
  529. won't let me make a file with a line longer than eighty characters!
  530. What a bagbiter!"
  531.    2. A person who has caused you some trouble, inadvertently or
  532. otherwise, typically by failing to program the computer properly.
  533. Synonyms: LOSER, CRETIN, CHOMPER.
  534.    BAGBITING adjective. Having the quality of a bagbiter. "This
  535. bagbiting system won't let me compute the greatest common divisor of
  536. two negative numbers."
  537. Synonyms: LOSING, CRETINOUS, BLETCHEROUS, BARFUCIOUS, CHOMPING.
  538.    BITE THE BAG verb. To fail in some manner. Example: "The computer
  539. keeps CRASHING every five minutes." "Yes, the disk controller is really
  540. biting the bag." The original meaning of this term was almost un-
  541. doubtedly obscene, probably referring to the scrotum. In its current
  542. usage it has become almost completely sanitized.
  543.  
  544. BANG noun.
  545.    The character "!" (exclamation point). Synonyms: EXCL, SHRIEK. See
  546. CHARACTERS. This term is more popular at CMU than at MIT or Stanford.
  547. It is used to describe the character "!" itself rather than to replace
  548. it. For example, one would not say, "Congratulations bang." On the
  549. other hand, if I wanted you to write "FOO!" -- those exact four
  550. characters, on a piece of paper -- I would tell you, "Write eff, oh,
  551. oh, bang."
  552.  
  553. BAR
  554.    The second metasyntactic variable, after FOO. If a hacker needs to
  555. invent exactly two names for things, he almost always picks the names
  556. "foo" and "bar". Example: "Suppose we have two functions, say, foo and
  557. bar. Now suppose foo calls bar..."
  558.    See FOO, FOOBAR.
  559.  
  560. BARF
  561.    1. interjection. Term of disgust or frustration. See BLETCH.
  562.    2. verb. To say "Barf!" or a similar term of disgust (because one
  563. is annoyed or offended).
  564.    3. To fail to work because of unacceptable input; sometimes, to
  565. print an error message. Examples: "The division operation barfs if you
  566. try to divide by zero." (Division by zero fails in some unspecified
  567. spectacular way) "The text editor barfs if you try to read in a new
  568. file before writing out the old one."
  569.    BARFULOUS, BARFUCIOUS adjective. So ugly or offensive as to make
  570. someone barf.
  571.    These meanings are derived form the common slang meaning of
  572. "barf", namely, "to vomit".
  573.  
  574. BAZ (baz)
  575.    1. The third metasyntactic variable, after FOO and BAR.
  576.    2. interjection. Term of mild annoyance. In this usage the pro-
  577. nunciation is often drawn out for two or three seconds, sometimes
  578. sounding like the bleating of a sheep: "Baaaaaaaaaaz!"
  579.  
  580. BELLS AND WHISTLES noun.
  581.    Unnecessary (but often useful, convenient, or amusing) features of
  582. a program or other object. Example: "Now that we've got the basic
  583. program working, let's go back and add some bells and whistles."
  584. On an automobile, things like power windows and quadrophonic sound
  585. would be bells and whistles.
  586.    This term is widely used, and not just in the hacker community. To
  587. understand it, think of a plain box that does a job well but is awfully
  588. boring to look at. Who will buy it? Now you add a few bells and
  589. whistles. They don't do anything useful, but they make the product more
  590. interesting. Nobody seems to know what distinguishes a bell from a
  591. whistle.
  592.  
  593. BIGNUM (big'num) noun.
  594.    1. A multiple-precision computer representation for very large
  595. integer.
  596.    2. More generally, any very large number. "Have you ever looked at
  597. the United States Budget? There's bignums for you!"
  598.    3. When playing backgammon, large numbers on the dice, especially
  599. a roll of double fives or double sixes.
  600. See EL CAMINO BIGNUM.
  601.    Most computer languages provide a kind of data called "integers",
  602. but such computer integers are usually very limited in size; usually
  603. they must be smaller than 215 (32768) or 231 (2147483648). If you want
  604. to work with numbers larger than that, you have to use floating-point
  605. numbers, which are usually only accurate to six or seven decimal
  606. places.
  607.    Computer languages that provide bignums can perform exact
  608. calculation on very large numbers such as 21000 or 1000! (the factorial
  609. of 1000, which is 1000 times 999 times 998 times ... times 2 times 1)
  610. exactly. For example, this value for 1000! was computed by the MACLISP
  611. system using bignums:
  612.  
  613. 40238726007709377354370243392300398571937486421071
  614. 46325437999104299385123986290205920442084869694048
  615. 00479988610197196058631666872994808558901323829669
  616. 94459099742450408707375991882362772718873251977950
  617. 59509952761208749754624970436014182780946464962910
  618. 56393887437886487337119181045825783647849977012476
  619. 63288983595573543251318532395846307555740911426241
  620. 74743493475534286465766116677973966688202912073791
  621. 43853719588249808126867838374559731746136085379534
  622. 52422158659320192809087829730843139284440328123155
  623. 86110369768013573042161687476096758713483120254785
  624. 89320767169132448426236131412508780208000261683151
  625. 02734182797770478463586817016436502415369139828126
  626. 48102130927612448963599287051149649754199093422215
  627. 66832572080821333186116811553615836546984046708975
  628. 60290095053761647584772842188967964624494516076535
  629. 34081989013854424879849599533191017233555566021394
  630. 50399736280750137837615307127761926849034352625200
  631. 01588853514733161170210396817592151090778801939317
  632. 81141945452572238655414610628921879602238389714760
  633. 88506276862967146674697562911234082439208160153780
  634. 88989396451826324367161676217916890977991190375403
  635. 12746222899880051954444142820121873617459926429565
  636. 81746628302955570299024324153181617210465832036786
  637. 90611726015878352075151628422554026517048330422614
  638. 39742869330616908979684825901254583271682264580665
  639. 26769958652682272807075781391858178889652208164348
  640. 34482599326604336766017699961283186078838615027946
  641. 59551311565520360939881806121385586003014356945272
  642. 24206344631797460594682573103790084024432438465657
  643. 24501440282188525247093519062092902313649327349756
  644. 55139587205596542287497740114133469627154228458623
  645. 77387538230483865688976461927383814900140767310446
  646. 64025989949022222176590433990188601856652648506179
  647. 97023561938970178600408118897299183110211712298459
  648. 01641921068884387121855646124960798722908519296819
  649. 37238864261483965738229112312502418664935314397013
  650. 74285319266498753372189406942814341185201580141233
  651. 44828015051399694290153483077644569099073152433278
  652. 28826986460278986432113908350621709500259738986355
  653. 42771967428222487575867657523442202075736305694988
  654. 25087968928162753848863396909959826280956121450994
  655. 87170124451646126037902930912088908694202851064018
  656. 21543994571568059418727489980942547421735824010636
  657. 77404595741785160829230135358081840096996372524230
  658. 56085590370062427124341690900415369010593398383577
  659. 79394109700277534720000000000000000000000000000000
  660. 00000000000000000000000000000000000000000000000000
  661. 00000000000000000000000000000000000000000000000000
  662. 00000000000000000000000000000000000000000000000000
  663. 00000000000000000000000000000000000000000000000000
  664. 00000000000000000
  665.  
  666.    The MACLISP language was not the first computer system to
  667. calculate very large integers, but it was MACLISP that provided the
  668. name "bignum".
  669.  
  670. BIT noun.
  671.    1. The unit of information: the amount of information obtained by
  672. asking a yes-no question.
  673.    2. A computational quantity that can take on one of two values,
  674. such as true and false, or 0 and 1.
  675.    3. A mental flag: a reminder that something should be done
  676. eventually. Example: "I have a bit set for you." (I haven't seen you
  677. for a while, and I'm supposed to tell or ask you something).
  678. A bit is said to be "set" if its value is true or 1, and "reset" or
  679. "clear" if its value is false or 0. One speaks of setting and clearing
  680. bits. To TOGGLE a bit is to change it, either from 0 to 1 or from 1 to
  681. 0. BITS. Information. Example: "I need some bits about file formats."
  682. ("I need to know about file formats").
  683.    THE SOURCE OF ALL GOOD BITS noun. A person from whom (or a place
  684. from which) information may be obtained. If you need to know about a
  685. program, a WIZARD might be the source of all good bits. The title is
  686. often applied to a particularly competent secretary.
  687.  
  688. BITBLT (bit'blit)
  689.    1. verb. To copy a large array of bits from on part of a com-
  690. puter's memory to another part, particularly when the memory is being
  691. used to determine what is shown on a display screen.
  692.    2. More generally, to perform some operation (such as TOGGLING) on
  693. a large array of bits while moving them.
  694.    3. noun. The operation of bitblting.
  695.    See BLT.
  696.  
  697. BIT BUCKET noun.
  698.    1. The mythical receptacle used to catch bits when they fall off
  699. the end of a register during a shift instruction.
  700.    2. More generally, the place where information goes when it is
  701. lost or destroyed. Example: "Oh, no! All my files just went into the
  702. bit bucket!"
  703.    3. The physical device used to implement output to the NULL
  704. DEVICE.
  705.    This term is used purely in jest. It's based on the fanciful
  706. notion that bits are objects that are not destroyed, only misplaced.
  707.  
  708. BIT DECAY noun.
  709.    A fanciful theory to explain SOFTWARE ROT, the phenomenon that
  710. unused programs or features will eventually stop working even if
  711. "nothing has changed". The theory explains that bits decay as if they
  712. were radioactive. As time passes, the contents of a file or the code in
  713. a program will become increasingly garbled.
  714.    There actually are physical processes that produce these effects.
  715. Alpha particles, such as those found in cosmic rays, can change the
  716. contents of a computer memory unpredictably. Fortunately, the pro-
  717. bability of this can be kept fairly low. In any case, when you can't
  718. figure out why something stopped working, it is often convenient to
  719. blame it on bit decay.
  720.  
  721. BLETCH (bletch) interjection.
  722.    Term of disgust.
  723.    BLETCHEROUS adjective. Disgusting in design of function, aes-
  724. thetically unappealing. (This word is seldom used of people.) Example:
  725. "This keyboard is bletcherous!" (Perhaps the keys don't work very well
  726. or are poorly arranged.) Slightly comic.
  727.    "Bletcherous" applies to the aesthetics of the thing so described;
  728. similarly for CRETINOUS. By contrast, something that is LOSING or
  729. BAGBITING may be failing to meet objective criteria.
  730.    See BOGUS and RANDOM, which have richer and wider shades of
  731. meaning than any of the others.
  732.  
  733. BLT (blit, belt) verb.
  734.    To copy or transfer a large contiguous package of information from
  735. one place to another. "The storage allocator picks through the table
  736. and copies the good parts up into high memory, and at the end, blt's it
  737. all back down again."
  738.    THE BIG BLT noun. A massive memory-shuffling operation frequently
  739. performed by some time-sharing systems on the PDP-10 computer.
  740. This comes from the name of a PDP-10 instruction that copies a block of
  741. memory form one place to another; the name "BLT" stands for "Block
  742. Transfer". Nowadays, BLT almost always means "Branch if Less Than
  743. zero", so the slang meanings above are rather like antiques or
  744. dinosaurs.
  745.  
  746. BOGUS (boh'gus) adjective.
  747.    1. Nonfunctional. Example: "Your fix for that BUG was bogus".
  748.    2. Useless. Example: "ATSIGN is a bogus program".
  749.    3. False. Example: "Your arguments are bogus".
  750.    4. Incorrect. Example: "That algorithm is bogus".
  751.    5. Unbelievable. Example: "You claim to have solved the halting
  752. problem for Turing Machines? That's totally bogus".
  753.    6. Silly. Example: "Stop writing those bogus SAGAS". Astrology is
  754. bogus. So is a bolt that is obviously about to break. So is someone who
  755. makes blatantly false claims of having solved a scientific problem.
  756.    BOGOSITY (boh'gahss':t-ee) noun. The quality of being bogus; also,
  757. an instance or example thereof.
  758.    BOGON (boh'gahn) noun.
  759.    1. A person who is bogus or who says bogus things.
  760.    2. More rarely, a mythical subatomic particle that bears the unit
  761. charge of bogosity. (A convention in particle physics is to name new
  762. subatomic particles by using the Greek suffix -on, because Greek words
  763. originally used to name such particles. For example hadrons are very
  764. massive particles that were named from the Greek word hadros, meaning
  765. "heavy". More recently, however, physicist have taken to attaching this
  766. suffix to words from other languages. For example, the particles that
  767. help to hold quarks together are called "gluons", from the English word
  768. glue. Hackers have used this convention in fun, on an ad hoc basis; but
  769. two of them, "bogon" and COMPUTRON, are used fairly regularly).
  770.    BOGOMETER (boh-gahm':t-:r) noun. A mythical instrument used to
  771. measure bogosity, much as a thermometer measures temperature. Example:
  772. In a seminar, when a speaker makes an outrageous claim, a listener
  773. might raise his hand and say, "My bogometer just triggered".
  774.    Someone who is a bogon in the first sense probably radiates a lot
  775. of bogons in the second sense. This provides a (pseudo) scientific
  776. explanation for how a bogometer works: it's like a Geiger counter that
  777. detects bogons.
  778.    The agreed-upon unit of bogosity is the microLenat (uL) or one-
  779. -millionth of a Lenat, in honor of computer scientist Doug Lenat. The
  780. consensus is that this is the largest unit practical for everyday use.
  781.    BOGOTIFY (boh-gaht':f-ie) verb. To make or become bogus. A program
  782. that has been changed so many times as to become completely dis-
  783. organized has become bogotified. If you tighten a nut too hard and
  784. strip the threads on the bolt, the bolt has become bogotified and you'd
  785. better not use it any more.
  786.    BOGUE OUT (bohg owt) verb. To become bogus, suddenly and un-
  787. expectedly. Example: "His talk was relatively sane, but then someone
  788. asked him a tricky question; he bogued out and did nothing but FLAME
  789. after that".
  790.    AUTOBOGOTIPHOBIA (aw'to-boh-gaht':-foh'bee-uh) noun. The fear of
  791. becoming bogotified.
  792.  
  793.    "Bogus" has many, but not all, of the meanings of RANDOM. "Random"
  794. tends to connote pointlessness or a lack of direction, while "bogus"
  795. tends to connote deception or misdirection. Both, however, may connote
  796. confusion.
  797.    "Bogus" was originally used in the hacker sense at Princeton in
  798. the late 1960s; not just in the computer science department but all
  799. over the campus. It came to Yale and (we assume) elsewhere through the
  800. efforts of migratory Princeton alumni, Michael Shamos in particular,
  801. now a faculty member at CMU. The hacker usage of this word has since
  802. spread to other places.
  803.  
  804. BOUNCE verb.
  805.    To play volleyball. This term is, or was, used primarily at
  806. Stanford. At on time there was a volleyball court next to the computer
  807. laboratory. From 5:00 P.M. to 7:00 P.M. was the scheduled maintenance
  808. time for the computer, so every afternoon at 5:00 the computer would
  809. become unavailable. And over the intercom a voice would cry, "Bounce,
  810. bounce!" meaning "Everyone come out and play volleyball!"
  811.  
  812. BRAIN-DAMAGED adjective.
  813.    Obviously wrong; extremely poorly designed; CRETINOUS; DEMENTED.
  814.    There is a connotation that the person responsible must have
  815. suffered brain damage, because he should have known better. Calling
  816. something brain-damaged is really extreme. The word implies that the
  817. thing is completely unusable, and that its failure to work is due to
  818. poor design, not accident.
  819.  
  820. BREAK verb.
  821.    1. To become BROKEN (in any sense).
  822.    2. To cause to be broken (in any sense). "Your latest patch to the
  823. editor broke the paragraph commands".
  824.    3. Of a program, to halt or pause temporarily so that it may be
  825. examined for debugging purposes. The place where the program stops is
  826. called a "breakpoint". See CONTROL-B.
  827. BROKEN adjective.
  828.    1. Of programs, not working properly. "The FORTRAN compiler is
  829. broken".
  830.    2. Behaving strangely -- especially (of people), exhibiting
  831. extreme depression.
  832.  
  833. BROKET (broh'k:t, broh'ket) noun.
  834.    Either of the characters "<" and ">". The first is called a "left
  835. broket", and the second a "right broket".
  836.    This word originated as a contraction of the phrase "broken
  837. bracket", that is, a bracket that is bent in the middle.
  838.  
  839. BUCKY BITS noun.
  840.    Bits corresponding to "control" and "meta" keys on a keyboard.
  841. See DOUBLE BUCKY and QUADRUPLE BUCKY.
  842.    This phrase requires a long explanation. Most computer keyboards
  843. are arranged more or less like a typewriter keyboard, but have extra
  844. keys. One of them, usually marked "control" or "CTRL", is like a shift
  845. key, but instead of changing letters from lower case to upper case, it
  846. changes them into so-called control characters. The character sent when
  847. you hold down the control key and type F is called simply "control-F".
  848. Such characters are usually used as commands to the computer, es-
  849. pecially to a text editor. In one well-known text editor, EMACS (which
  850. was written at MIT), control-F moves forward one character, control-N
  851. moves to the next line, control-P moves to the previous line, control-D
  852. deletes a character, and so on.
  853.    Control characters are so useful that sometimes special keyboards
  854. are built that have even more shift keys. One of the first of these was
  855. used at Stanford. It had the usual shift and control keys, and a third
  856. key called "meta", as well as lots of unusual characters such as Greek
  857. letter. So, one can type such characters as control-F, meta-N, and
  858. control-meta-B.
  859.    Now, when you type a character on a Stanford keyboard, the
  860. following information is sent to the computer: a code indicating the
  861. basic character, plus one BIT for each shifting key to indicate whether
  862. that shifting key was pressed along with the basic character key.
  863. Programs usually treat the regular shift key as part of the basic
  864. character, indicating whether you want lower case or upper case (or
  865. whether you want "3" or "#", and so on). The other bits (control and
  866. meta) are called the bucky bits.
  867.  
  868.    Why "bucky"? Rumor has it that the idea for the extra bits for
  869. characters came from computer scientist Niklaus Wirth (who invented the
  870. computer languages PASCAL and MODULA-2) when he was at Stanford, and
  871. that his nickname was "Bucky".
  872.    Inspired by the Stanford keyboard, the MIT SPACE CADET KEYBOARD
  873. has seven shifting keys: four "bucky bit" keys -- "control", "meta",
  874. "hyper", and "super" -- and three like the regular shift key, called
  875. "shift", "top", and "front". Many keys have three symbols on them: a
  876. letter and a symbol on the top, and a Greek letter on the front. For
  877. example, the L key has an "L" and a two-way arrow on the top, and a
  878. Greek letter lambda on the front. If you press this key with the right
  879. hand while playing an appropriate :chord: with the left hand on the
  880. shift keys, you can get the following results:
  881.  
  882.       L                             lower-case "l"
  883.       shift-L                       upper-case "L"
  884.       front-L                       Greek lower-case lambda
  885.       front-shift-L              Greek upper-case lambda
  886.       top-L                         two-way arrow
  887.                                     (front and shift are ignored)
  888.  
  889.    And of course each of these may also be typed with any combination
  890. of the control, meta, hyper, and super keys. On this keyboard you can
  891. type over 8000 different character! This allows the user to type very
  892. complicated mathematical text, and also to have thousands of sin-
  893. gle-character commands at his disposal. Many hackers are actually
  894. willing to memorize the command meanings of that many characters if it
  895. will reduce typing time. Other hackers, however, think having that many
  896. bucky bits is overkill, and object that such a keyboard can require
  897. three or four hands to operate.
  898.  
  899. BUG noun.
  900.    A mistake or problem (possibly simple, possibly very deep); an
  901. unwanted and unintended property, characteristic, or behavior.
  902.    Examples: "There's a bug in the editor. It writes things out
  903. backward." "The system CRASHED because of a hardware bug". (That is,
  904. the computer suddenly stopped because of an equipment failure) "Fred is
  905. a WINNER, but he has a few bugs" (Fred is a good guy, but he has a few
  906. personality problems).
  907.    Antonym: FEATURE.
  908.    This is usually thought of as applying to a program but can be
  909. applied to computers, people, and other things.
  910.    Some say this term came from telephone company usage: "Bugs in a
  911. telephone cable" were blamed for noisy lines. However, computer
  912. scientist Grace Hopper has repeatedly been heard to claim that the use
  913. of the term in computer science comes from a story concerning actual
  914. bugs found wedged in an early malfunctioning computer. In any case, in
  915. hacker's slang the word almost never refers to insects. Here is a
  916. plausible conversation that never actually happened: "This ant farm has
  917. a bug." "What do you mean? There aren't even any ants in it." "That's
  918. the bug."
  919.  
  920. BUM
  921.    1. verb. To improve something by removing or rearranging its parts
  922. -- such as wires in a computer or instructions from a program -- while
  923. preserving its function. More generally, to make highly efficient,
  924. either in time or space. The connotation is that this is done at the
  925. expense of clarity. Examples: "I managed to bum three more instructions
  926. out of that code." "I bummed the program not to write the file if it
  927. would be empty." "I bummed the inner loop of the program down to seven
  928. microseconds."
  929.    2. noun. A small change to an algorithm, program, or object to
  930. make it more efficient. "This hardware bum makes the jump instruction
  931. faster."
  932.  
  933. BUZZ verb.
  934.    Of a program, to run with no indication of progress and perhaps
  935. without guarantee of ever finishing. The state of a buzzing program
  936. resembles CATATONIA, but you never get out of catatonia, while a
  937. buzzing loop may eventually end of its own accord. Example: "The
  938. program buzzes for about ten seconds trying to sort all the names into
  939. order".
  940.  
  941. CANONICAL (ki-nahn'i-kil) adjective.
  942.    Usual; standard; ordinary. Example: "What is the canonical way to
  943. rejustify a paragraph in EMACS?"
  944.    This word has a somewhat more technical meaning in mathematics.
  945. For example, on sometimes speaks of a formula as being in canonical
  946. form. Two formulas such as 9+3x^2+x and 3x^2+x+9 are said to be
  947. equivalent because they mean the same thing, but the second one is in
  948. canonical form because it is written in the usual way, with the highest
  949. power of x first.
  950.  
  951.    Usually there are fixed rules you can use to decide whether
  952. something is in canonical form. The slang meaning is a relaxation of
  953. the technical meaning.
  954.    A true story: One Bob Sjoberg, new at MIT, expressed some
  955. annoyance at the use of hacker's slang. Over his loud objections, we
  956. made a point of using the slang as much as possible in his presence,
  957. and eventually it began to sink in, Finally, in one conversation he
  958. used the word "canonical" in slanglike fashion without thinking.
  959.  
  960.    Steele: Aha! We've finally got him talking jargon [slang] too!
  961.    Stallman: (who wasn't quite paying attention) What did he say?
  962.    Steele: Bob just used "canonical" in the canonical way.
  963.  
  964. CATATONIA (kat':-toh'ne-uh) noun.
  965.    A condition of suspended animation in which something is so WEDGED
  966. that it makes no response. For example, if you are typing on your
  967. terminal and suddenly the computer doesn't even make the letter appear
  968. on the screen as you type -- let alone do what you're asking it to do
  969. -- then the computer is suffering from catatonia (probably because it
  970. has CRASHED).
  971. CATATONIC (kat':-tahn'ik) adjective. In a state of catatonia.
  972.    Synonym: WEDGED.
  973.  
  974. CDR (ku'd:r) verb.
  975.    To remove the first item from a list of things.
  976. CDR DOWN verb. To go down a list of things one by one. Example: "Shall
  977. we cdr down the agenda?" Silly.
  978. This term is derived from a function of the LISP language that removes
  979. an item from a list.
  980.  
  981. CHARACTERS noun.
  982.    Those things that you type on a keyboard or that appear on your
  983. terminal. (Sometimes you can type characters on your keyboard that
  984. cannot be printed on the screen, and vice versa. For example, on most
  985. keyboards you can type "control characters" that can't be written down
  986. like the characters "A" and "%" can; they are mostly used as special
  987. commands. Conversely, some terminals can display almost any picture a
  988. program can draw. A program can then draw Greek letters or any other
  989. funny symbol, even if they aren't on the keyboard.)
  990.    Computers tend to seem very unforgiving: a program can fail to
  991. work if you get even one character in it wrong. (Folklore has it that a
  992. NASA mission to Venus failed because, in one place in one program,
  993. there was a period where there should have been a comma). Hackers
  994. therefore need to be very precise when talking about characters, and
  995. have developed a considerable amount of verbal shorthand for talking
  996. about characters:
  997.       !        EXCL, exclam, BANG, SHRIEK, WOW.
  998.       #        Hash mark, MESH, SPLAT, CRUNCH, pig-pen.
  999.       $        Dollar.
  1000.       &        Ampersand (This name is already so silly that no
  1001.                slang term is needed!)
  1002.       '        Single quote, forward quote.
  1003.       ( and )  Parens (separately called just OPEN and CLOSE).
  1004.       *        Star, SPLAT. (In other computer communities, the
  1005.                name "gear" is used, because it looks like a little
  1006.                cogwheel).
  1007.       .        Period, dot, point. (Which of these is used depends
  1008.                on culture and context. The word "point" is used
  1009.                more at MIT that "dot" is. CMU uses "dot"
  1010.                almost exclusively).
  1011.       /        Slash, forward slash.
  1012.       ;        SEMI.
  1013.       <        Less than, left ANGLE BRACKET, open angle bracket,
  1014.                left BROKET.
  1015.       =        Equals.
  1016.       >        Greater than, right ANGLE BRACKET, close angle
  1017.                bracket, right BROKET.
  1018.       ?        QUES, query.
  1019.       @        At-sign, at.
  1020.       \        Backslash.
  1021.       ^        Caret. (The name "uparrow" is also used; this dates
  1022.                from the days of old ASCII, when the code now
  1023.                assigned to circumflex was used for an upward-
  1024.                -pointing arrow).
  1025.       _        Backarrow. (This dates from the days of old ASCII,
  1026.                when the code now assigned to an underscore was
  1027.                used for a leftward-pointing arrow).
  1028.       `        Backquote.
  1029.       { and }  Curly braces, curly brackets, SQUIGGLE BRACKETS.
  1030.       |        Vertical bar.
  1031.       ~        TWIDDLE, SQUIGGLE, SQIGGLE.
  1032.  
  1033.    The INTERCAL programming language, consistent with its general
  1034. policy of never doing anything the way some other programming language
  1035. does it, has odd names especially invented for many characters. Most of
  1036. these names are generally not used except in the context of INTERCAL.
  1037.  
  1038.       .     Spot.
  1039.       :     Two-spot.
  1040.       ,     Tail.
  1041.       #     Mesh.
  1042.       =     Half-mesh.
  1043.       '     Spark.
  1044.       `     Backspark.
  1045.       "     Rabbit ears.
  1046.       !     WOW.
  1047.       ?     What.
  1048.       |     Spike.
  1049.       -     Worm.
  1050.       <     Angle. (The two-character arrow "<-" is called
  1051.             "angleworm").
  1052.       >     Right angle.
  1053.       (     Wax.
  1054.       )     Wane.
  1055.       [     U turn.
  1056.       ]     U turn back.
  1057.       {     Embrace.
  1058.       }     Bracelet.
  1059.       *     SPLAT.
  1060.       &     Ampersand (INTERCAL couldn't make this any sillier,
  1061.             either).
  1062.       _     Flatworm.
  1063.       +     Intersection.
  1064.       /     Slat.
  1065.       \     Backslat.
  1066.       ^     Shark (or simply shark fin).
  1067.       @     Whirlpool.
  1068.       %     Double-oh-seven.
  1069.  
  1070. CHINE NUAL (sheen'yu-:l) noun.
  1071.    The reference manual for the Lisp Machine, a computer designed at
  1072. MIT especially for running the LISP language. It is called this because
  1073. the title, LISP MACHINE MANUAL, appears in big block letters -- wrapped
  1074. around the cover in such a way that you have to open the cover out flat
  1075. to see the whole thing. If you look at just the front cover, you see
  1076. only part of the title, and it reads "LISP CHINE NUAL"
  1077.  
  1078. CHOMP (chahmp) verb.
  1079.    To LOSE; to chew on something of which more was bitten off than
  1080. one can.
  1081.    Synonyms: LOSE, BITE THE BAG (see BAGBITER).
  1082.    A hand gesture commonly accompanies the use of the word "chomp".
  1083. The four fingers are held together as if in a mitten or hand puppet,
  1084. and the fingers and thumb are opened and closed rapidly to illustrate a
  1085. biting action. The hand may be pointed at the object of complaint, and
  1086. for the real emphasis you can use both hands at once. For example, to
  1087. do this to a person is equivalent to saying, "You chomper!". If you
  1088. point the gesture at yourself, it is a humble but humorous admission of
  1089. some failure. I would do this if someone told me that a program I had
  1090. written failed in some surprising way and I felt stupid for not having
  1091. anticipated it.
  1092.    CHOMPER (chahmp':r) noun. Someone or something that is chomping; a
  1093. loser.
  1094.    Synonyms: LOSER, BAGBITER.
  1095.  
  1096. CLOSE (klohz)
  1097.    1. adjective. Of a delimiting CHARACTER, used at the righthand end
  1098. of a grouping. Used in such terms as "close parenthesis" and "close
  1099. bracket".
  1100.    2. noun. Abbreviation for "close (or right) parenthesis", used
  1101. when necessary to eliminate oral ambiguity. See OPEN and CHARACTERS.
  1102.    3. verb. To terminate one's interaction with a file of in-
  1103. formation. See OPEN.
  1104.  
  1105. COKEBOTTLE (kohk'baht-:l) noun.
  1106.    Any very unusual character, particularly one that isn't on your
  1107. keyboard so you can't type it. A program written at Stanford, for
  1108. example, is likely to have a lot of "control-meta-cokebottle" commands,
  1109. that is, commands that you can only type on a Stanford keyboard --
  1110. because you need the "control" and "meta" keys (see BUCKY BITS) -- and
  1111. also unusual characters such as the downward-pointing arrow. The last
  1112. is a "cokebottle" unless you happen to have a Stanford keyboard. (This
  1113. usage probably arose because of the unusual and distinctive shape of
  1114. Coca-Cola bottles. No keyboard I know of actually has a cokebottle
  1115. character on it, so any character you can't type might as well be a
  1116. Coke bottle for all the good it does you).
  1117.  
  1118. COM MODE, COMM MODE (kahm'mohd) noun.
  1119.    A situation in which two or more terminals are linked together by
  1120. the computer so that whatever is typed on any of them appears on all of
  1121. them. Ideally this is accomplished in such a way that what you type
  1122. appears on the other terminals but is not otherwise interpreted by the
  1123. computer (so what you type doesn't foul up your programs). The word com
  1124. is short for communicate.
  1125.    Com mode is used for conversation: you can talk to other hackers
  1126. without leaving your terminal. It combines the immediacy of talking
  1127. with all the precision (and verbosity) that written language entail. It
  1128. is difficult to communicate inflections, though conventions have arisen
  1129. for some of these. For example, to emphasize a word (as if printed in
  1130. italics), one may type an asterisk before and after the word. Typing in
  1131. all-capital letters is equivalent to raising one's voice).
  1132.    Neophytes, when in com mode, seem to think they must produce let-
  1133. ter-perfect prose because they are typing rather than speaking. This is
  1134. not the best approach. It can be very frustrating to wait while your
  1135. partner pauses to think of a word, or repeatedly makes the same
  1136. spelling error and backs up to fix it. It is usually best just to leave
  1137. typographical errors behind and plunge forward, unless severe confusion
  1138. may result. In that case, it is often fastest just to type xxx and
  1139. start over from before the mistake.
  1140.    There is a special set of slang terms used only in com mode, which
  1141. are not used vocally. These are used to save typing or to communicate
  1142. inflection.
  1143.  
  1144.       BCNU     Be seeing you (that is, good-bye).
  1145.       BTW      By the way...
  1146.       BYE?     Are you ready to unlink? (This is the standard way
  1147.                to end a com mode conversation: the other person
  1148.                types BYE to confirm, or else continues the
  1149.                conversation).
  1150.       CUL      See you later.
  1151.       FOO?     A greeting, also meaning R U THERE? Often used in
  1152.                the case of unexpected links, meaning also "Sorry
  1153.                if I butted in" (linker) or "What's up?" (linkee).
  1154.       FYI      For your information...
  1155.       GA       Go ahead (used when two people have tried to type
  1156.                simultaneously; this cedes the right to type to the
  1157.                other.
  1158.       HELLOP   A greeting, also meaning R U THERE? (This is an
  1159.                instance of the -P convention).
  1160.       NIL      No. (See the main entry for NIL).
  1161.       OBTW     Oh, by the way...
  1162.       R U THERE?
  1163.                Are you there?
  1164.       SEC      Wait a second (sometimes written SEC...). For
  1165.                example, if you are interrupted by a telephone
  1166.                call, or need to think about something before
  1167.                replying, you might type this. You might also type
  1168.                an additional dot every few seconds to indicate
  1169.                that you are still there but busy. Also, if you
  1170.                need to use a program for a moment (possibly
  1171.                because someone asked you a question), you might
  1172.                type SEC..., unlink your terminal, use your
  1173.                program, and the link back into the com mode.
  1174.       T        Yes (See the main entry for T).
  1175.       TNX      Thanks.
  1176.       TNX 1.0E6
  1177.                Thanks a million. (This "1.0E6" is a standard way
  1178.                to write one million in many computer languages).
  1179.                Silly.
  1180.       [double crlf]
  1181.                When the typing party has finished, he types two
  1182.                CRLF's (that is, presses the RETURN key twice) to
  1183.                signal that he is done. This leaves a blank line
  1184.                between individual "speeches" in the conversation,
  1185.                making it easier to reread the preceding text, and
  1186.                indicates that the other person may type.
  1187.       [name]:  When three or more terminals are linked, each
  1188.                speech is preceded by the typist's login name
  1189.                ("computer id") and a colon (or a hyphen) to
  1190.                indicate who is typing. You need to do this because
  1191.                you can't tell who is who by tone of voice! The
  1192.                login name often is shortened to a unique prefix
  1193.                (possibly a single letter) during a very long
  1194.                conversation.
  1195.       /\/\/\   The equivalent of a giggle.
  1196.  
  1197.    Synonym: TALK MODE. (The term "com mode" is used more at MIT, and
  1198. "talk mode" at Stanford.
  1199.  
  1200.  
  1201. COMPUTRON (kahm'pyoo-trahn'), COMPUTON (kahm'pyoo-tahn') noun.
  1202.    A mythical subatomic particle that bears the unit quantity of
  1203. computation or information, in much the same way that an electron bears
  1204. one unit of electric charge. If the computer is too slow, it's because
  1205. you're short of computrons. See BOGON and CYCLE.
  1206.    An elaborate pseudo-scientific theory of computrons has been
  1207. worked out as a jest by MIT hacker Stavros Macrakis. (He called the
  1208. particles "mensons", but that name is no longer used). It is a
  1209. well-known fact of physics that as you heat something, the molecules
  1210. get jiggled around and their positions become more random. The hotter
  1211. it gets, the less predictable are the positions of the molecules.
  1212. Eventually the molecules just spill all over each other, and the thing
  1213. melts. Now, he argues, it obviously melts because each molecule has
  1214. lost the information about where it is supposed to be: in other words,
  1215. it has lost computrons. This explains why computers get so hot and
  1216. require air conditioning: they use up computrons. Conversely, you
  1217. should be able to refrigerate something simply by placing it in the
  1218. path of a computron beam.
  1219.    CMU hacker Joe Newcomer has also observed that this theory
  1220. explains why a computer works when it's tested in the factory but not
  1221. when you've put it in the computer room with all the other computers.
  1222. They're tested singly at the factory, and so there are plenty of
  1223. computrons available there, but in the computer room all the computers
  1224. compete for the computrons in a limited space and some of them come up
  1225. short.
  1226.  
  1227. CONNECTOR CONSPIRACY noun.
  1228.    The (perhaps only mythical) tendency of manufacturers (or, by ex-
  1229. tension, programmers or purveyors of anything) to come up with new
  1230. products that don't fit together with the old stuff, thereby making you
  1231. buy either all new stuff or expensive interface devices.
  1232.    This term probably came into prominence with the appearance of the
  1233. KL10 model of the PDP-10, none of whose connectors seemed to match
  1234. anything else.
  1235.  
  1236. CONS (kahnz) verb.
  1237.    To add a new element to a list, usually to the top rather than at
  1238. the bottom. CONS UP verb. To synthesize from smaller pieces; more ge-
  1239. nerally, to create or invent. Examples: "I'm trying to cons up a list
  1240. of volleyball players". "Let's cons up an example".
  1241. This term comes from the LISP programming language, which has a
  1242. function called CONS that adds a data item to the front of a list.
  1243.  
  1244. CONTROL
  1245.    The name of one of the several BUCKY BITS. Used as a prefix to
  1246. another character, it indicates that the "control" key on your keyboard
  1247. should be pressed as the other character is typed.
  1248.  
  1249. CONTROL-B (k:n-trohl' bee') interjection.
  1250.    May I interrupt? or, Beginning of digression. Synonym: PUSH.
  1251. Antonym: CONTROL-P.
  1252.  
  1253. CONTROL-G (k:n-trohl' jee') interjection.
  1254.    Stop! Cease! Change the subject! Stop that FLAMING!
  1255.  
  1256. CONTROL-P (k:n-trohl' pee') interjection.
  1257.    End of interruption or digression. If two hackers are sitting in
  1258. an office talking, a third one might stick his head in the door and ask
  1259. "Control-B?". This is a polite, albeit silly, way of asking "May I
  1260. interrupt?" When the side conversation is done, the third hacker might
  1261. say "Thanks a lot, Control-P".
  1262.    Control characters are used in various ways to control the actions
  1263. of computer programs. Different computer systems have different con-
  1264. ventions about how control characters are used, and hackers will use
  1265. the local computer convention when speaking. The definitions given
  1266. above correspond to their meanings as used in the MACLISP language and
  1267. in DDT at MIT. At other places, "Control-C" replaces "Control-G", for
  1268. example.
  1269.  
  1270. CRASH
  1271.    1. noun. A sudden, usually drastic failure. Most often said of the
  1272. SYSTEM, sometimes of magnetic disk drives. Example: "Three LUSERS lost
  1273. their files in last night's disk crash". The term "system crash"
  1274. usually, though not always, implies that the operating system or other
  1275. software was at fault. Disk crashes come in two varieties: either the
  1276. disks are physically unharmed but some information stored on them is
  1277. lost, or else the disks are physically damaged -- in which case the
  1278. entire information content of the disk is usually lost. The second kind
  1279. usually occurs when the magnetic read/write heads hit the surfaces of
  1280. the disks and scrape off the oxide. This kind of disk crash is called a
  1281. "head crash".
  1282.    2. verb. To fail suddenly. Example: "Has the system just
  1283. crashed?".
  1284.    3. verb. To cause to fail. Example: "There is a BUG in the tape
  1285. controller; if you try to use the tape drive, you will crash the
  1286. system".
  1287.    4. verb. Of people, to go to sleep -- particularly after a long
  1288. period of work. See GRONK OUT.
  1289.  
  1290. CREEPING FEATURISM (kreep'eeng feetch':r-iz':m) noun.
  1291.    The tendency for anything complicated to become even more
  1292. complicated because people keep saying, "Gee, it would be even better
  1293. if it had this feature too". (See FEATURE)
  1294.    The result is usually a patchwork, because it grew one ad hoc step
  1295. at a time, rather than being planned. Planning is a lot of work, but
  1296. it's easy to add just one extra little feature to help someone... And
  1297. then another... and another... Usually this term is used to describe
  1298. computer programs, but it could also be applied to the federal
  1299. government, the IRS 1040 form, and new cars.
  1300.  
  1301. CRETIN (kreet-:n) noun.
  1302.    A congenital LOSER; an obnoxious person; someone who can't do
  1303. anything right. CRETINOUS (kree'tin-uhss, kreet':n-uhss) adjective.
  1304. Wrong; nonfunctional; very poorly designed (also used pejoratively of
  1305. people).
  1306.    Synonyms: BLETCHEROUS, BAGBITING, LOSING, BRAIN-DAMAGED.
  1307.  
  1308. CRLF (k:r'lif, crul':f)
  1309.    1. noun. A carriage return (CR) followed by a line feed (LF). More
  1310. loosely, whatever it takes to get you from the end of one line of text
  1311. to the beginning of the next line.
  1312.    2. verb. To output a crlf; to end a line of text or to begin a new
  1313. line of text.
  1314.    Synonym: TERPRI.
  1315.  
  1316. CROCK noun.
  1317.    1. Something, especially a program, that works but does so in an
  1318. unbelievable ugly or awkward manner; more specifically, something that
  1319. works acceptably but which is quite prone to failure if disturbed in
  1320. the least.
  1321.    2. A tightly woven, almost completely unmodifiable structure;
  1322. something very complicated that ought to be simple.
  1323.    Computer programs seldom stay the same forever. They tend to
  1324. evolve, and are constantly changed as BUGS are fixed or new FEATURES
  1325. added. Crocks make this difficult because, although they work, they are
  1326. very difficult to make small changes to.
  1327.    Synonym: KLUDGE. CROCKISH, CROCKY adjective. Having the cha-
  1328. racteristics of a crock. See BLETCHEROUS.
  1329.    CROCKITUDE (krahk':-tood) noun. Crockness, crockhood.
  1330.  
  1331. CRUFT (kruhft)
  1332.    1. noun. An unpleasant substance. The dust that gathers under your
  1333. bed is cruft.
  1334.    2. noun. The results of shoddy construction.
  1335.    CRUFT TOGETHER verb. To make something quickly and haphazardly to
  1336. get it working quickly, without regard to craftsmanship. Example:
  1337. "There isn't any program now to reverse all the lines of a file, but I
  1338. can probably cruft one together in about ten minutes".
  1339.    The origin of this word is unknown.
  1340.  
  1341. CRUFTY (kruhft'ee)
  1342.    1. adjective. Unpleasant, especially to the touch; yucky, like
  1343. spilled coffee smeared with peanut butter and catsup.
  1344.    2. adjective. Poorly built, possibly overly complex. "This is
  1345. standard old crufty DEC software".
  1346.    3. adjective. Generally unpleasant.
  1347.    4. noun (also spelled "cruftie"). A small crufty object, or (in a
  1348. program) a small data structure, especially one that doesn't fit well
  1349. into the scheme of things. Every desk seems to have one drawer that
  1350. accumulates crufties. Example: "A LISP property list is a good place to
  1351. store crufties". (In the LISP language, odd data structures can be
  1352. stored in a catchall data structure called a property list).
  1353.    CRUFTSMANSHIP noun. The antithesis of craftsmanship.
  1354.  
  1355. CRUNCH
  1356.    1. verb. To process, usually in a time-consuming or complicated
  1357. way. The connotation is of an essentially trivial operation that is
  1358. nonetheless painful to perform, possibly because the trivial operation
  1359. must be performed millions of times. When the trivial operation
  1360. involves numerical computation, this is called "number crunching".
  1361. Example: "FORTRAN programs mostly do number crunching".
  1362.    2. verb. To reduce the size of a file by a complicated scheme that
  1363. produces bit configurations completely unrelated to the original data,
  1364. such as by the mathematical technique called "Huffman codes". (The file
  1365. ends up looking like a paper document would if somebody crunched the
  1366. paper into a wad). Since such a compression operation usually requires
  1367. a great deal of computation (it is much more sophisticated than such
  1368. simper methods as counting consecutive repeated characters), the term
  1369. is doubly appropriate. Sometimes the term "file crunching" is used to
  1370. distinguish it from "number crunching".
  1371.    3. noun. A crisis, especially a scarcity of some resource. If you
  1372. don't have much time to get something done, you're in a time crunch.
  1373. See CYCLE CRUNCH.
  1374.    4. noun. The character "#". See CHARACTERS.
  1375.  
  1376. CTY (sit'ee) noun.
  1377.    The terminal physically associated with a computer's operating
  1378. console. The term is a contraction of "Console TTY", that is, "Console
  1379. TeleTYpe".
  1380.  
  1381. CUSPY (cuhsp'ee) adjective.
  1382.    Clean, well-written; functionally excellent. A program that
  1383. performs well and interfaces well to users is cuspy.
  1384.    Antonyms: RUDE, CRUFTY, BLETCHEROUS.
  1385.    This term originated at WPI. It comes from the acronym CUSP, used
  1386. by DEC to mean a "Commonly Used System Program", that is, a utility
  1387. program used by many people. Ideally, such programs, whatever the
  1388. source, are built to high standards of excellence. The extent to which
  1389. a hacker uses this word obviously depends largely on how highly he
  1390. regards DEC-supplied software.
  1391.  
  1392. CYCLE noun.
  1393.    The "basic unit of computation". What every hacker wants more of.
  1394. You might think that single machine instructions would be the measure
  1395. of computation, and indeed computers are often compared by assessing
  1396. how many instructions they can process per second -- even though some
  1397. instructions take longer that others. Nearly all computers have an
  1398. internal clock, though, and you can describe an instruction as taking
  1399. so many "clock cycles". Typically the computer can access its memory
  1400. once on every clock cycle, and so one speaks also of "memory cycles".
  1401. These are technical meanings of "cycle".
  1402.  
  1403.    The slang meaning comes from the observation that there are only
  1404. so many cycles per second; and when you are sharing a computer, the
  1405. cycles get divided up among the users. The more cycles the computer
  1406. spends working on your program rather than someone else's, the faster
  1407. your program will run. That's why every hacker wants more cycles: so he
  1408. can spend less time waiting for the computer to respond.
  1409.    CYCLE CRUNCH noun. The situation where the number of people si-
  1410. multaneously trying to use the computer has reached the point where no
  1411. one can get enough cycles because they are spread too thin. Usually the
  1412. only solution is to buy another computer.
  1413.    CYCLE DROUGHT noun. A scarcity of cycles. It may be due to a cycle
  1414. crunch, but could also occur because part of the computer is tem-
  1415. porarily not working, leaving fewer cycles to go around. Example: "The
  1416. high MOBY is DOWN, so we're running with only half the usual amount of
  1417. memory. There will be a cycle drought until it's fixed".
  1418.  
  1419. DAEMON (day'm:n, dee'm:n) noun.
  1420.    A program that is not invoked explicitly, but that lies dormant
  1421. waiting for one or more conditions to occur. The idea is that the
  1422. perpetrator of the condition need not be aware that a daemon is lurking
  1423. (though often a program will commit an action only because it knows
  1424. that it will implicitly invoke a daemon). For example, many operating
  1425. systems have a printing daemon. When you want to print a file on some
  1426. printing device, instead of explicitly running a program that does the
  1427. printing, you just copy your file to a particular directory (file
  1428. area). The printer daemon is just a program that is always running; it
  1429. checks the special directory periodically, and whenever it finds a file
  1430. there it prints it and then deletes it. The advantage is that programs
  1431. that want (in this example) files printed need not compete for access
  1432. to the printing device itself, and need not wait until the printing
  1433. process is completed. In particular, a user doesn't have to sit there
  1434. waiting with his terminal tied up while the printing program does its
  1435. work. He can do something else useful while the daemon does its job.
  1436.    Daemon and DEMON are often used interchangeably, but seem to have
  1437. discrete connotations. "Daemon" was introduced to computing by people
  1438. working on CTSS, the Compatible Time-Sharing System, which was the
  1439. first time-sharing system, developed at MIT. They pronounced it
  1440. "dee'm:n", and used it to refer to what is now called a DRAGON or
  1441. PHANTOM. The meaning and pronunciation have drifted, and we think the
  1442. definitions given here reflect current usage.
  1443.  
  1444. DAY MODE noun.
  1445.    The state a person is in when he is working during the day and
  1446. sleeping at night.
  1447.    See PHASE and NIGHT MODE.
  1448.  
  1449. DDT (dee'dee'tee') noun.
  1450.    A program that helps you to debug other programs by showing
  1451. individual machine instruction in a readable symbolic form and letting
  1452. the user change them. At MIT, DDT is also used as the "top-level
  1453. command language" to run other programs.
  1454.    The DEC PDP-10 Reference Handbook (1969) contained this footnote
  1455. on the first page of the documentation for DDT:
  1456.  
  1457.    Historical footnote: DDT was developed at MIT for the PDP-1
  1458. computer in 1961. At that time, DDT stood for "DEC Debugging Tape".
  1459. Since then, the idea of an on-line debugging program has propagated
  1460. throughout the computer industry. DDT programs are now available for
  1461. all DEC computers. Since media other than tape are now frequently used,
  1462. the more descriptive name "Dynamic Debugging Technique" has been
  1463. adopted, retaining the DDT acronym. Confusion between DDT-10 and
  1464. another well-known pesticide, dichloro-diphenyl-trichloroethane
  1465. (C14H9Cl5) should be minimal, since each attacks a different, and
  1466. apparently mutually exclusive, class of bugs.
  1467.  
  1468.    Sad to say, this quotation was removed from later editions of the
  1469. handbook as DEC became much more "businesslike".
  1470.  
  1471. DEADLOCK noun.
  1472.    A situation wherein two or more processes (or persons) are unable
  1473. to proceed because each is waiting for another to do something.
  1474. Here is a typical example: Two programs running on the same computer
  1475. both want the exclusive use of two things, say a line printer and a
  1476. disk. The first one grabs the line printer and the tries to grab the
  1477. disk, but fails because the second one successfully grabbed the disk
  1478. and is now waiting to get the line printer.
  1479.    Deadlock also occurs when two people meet in a narrow corridor and
  1480. each tries to be polite by moving aside to let the other pass -- but
  1481. they end up swaying from side to side without making any progress
  1482. because they always move the same way at the same time.
  1483.    Synonym: DEADLY EMBRACE.
  1484.  
  1485. DEADLY EMBRACE noun.
  1486.    DEADLOCK. This term is usually used only when exactly two
  1487. processes are involved, while "deadlock" can involve any number. Also,
  1488. "deadly embrace" seems to be the more popular term in Europe, while
  1489. "deadlock" is more frequently used in the United States.
  1490.  
  1491. DELTA noun.
  1492.    1. A change, especially a small or incremental change. Example: "I
  1493. just doubled the speed of my program!" "What was the delta on program
  1494. size?". "About thirty percent". (He doubled the speed of his program,
  1495. but increased its size by thirty percent).
  1496.    2. A small quantity, but not so small as EPSILON.
  1497.  
  1498. DEMENTED adjective.
  1499.    Useless; totally nonfunctional; BRAIN_DAMAGED.
  1500.    This is yet another term of disgust used to describe a program.
  1501. The connotation in this case that the program works as designed, but
  1502. the design is bad; perhaps also that the program explicitly exhibits
  1503. strange behavior. For example, a program that generates large numbers
  1504. of meaningless error messages, implying that it is on the point of
  1505. imminent collapse, would be described as demented.
  1506.  
  1507. DEMON (dee'm:n) noun.
  1508.    A portion of a program which is not involved explicitly, but which
  1509. lies dormant waiting for some condition(s) to occur. See DAEMON.
  1510.    Demons are usually processes that are pieces of a single program,
  1511. while daemons are usually entire programs running in the context of a
  1512. large system, such as an operating system. This distinction is
  1513. admittedly not hard and fast. Demons are particularly common in
  1514. artificial intelligence programs. For example, a knowledge manipulation
  1515. program might implement inference rules as demons. Whenever a new piece
  1516. of knowledge was added, various demons would activate (which demons
  1517. depends on the particular piece of data) and would create additional
  1518. pieces of knowledge by applying their respective inference rules to the
  1519. original piece. These new pieces could in turn activate more demons as
  1520. the inferences filtered down through chains of logic. Meanwhile the
  1521. main program could continue with whatever its primary task was.
  1522.  
  1523. DIDDLE (did':l)
  1524.    1. verb. To work with in a not particularly serious manner; to
  1525. make a very simple change (as to a program). Examples: "Let's diddle
  1526. this piece of code and see if the problem goes away". (That is, let's
  1527. try the obvious quick fix). "I diddled the text editor to ring the bell
  1528. before it deletes all your files".
  1529.    2. noun. The action of result of diddling.
  1530.    Synonyms: TWEAK, TWIDDLE.
  1531.  
  1532. DIKE (diek) verb.
  1533.    To remove or disable a portion of something, as a wire form a
  1534. computer or subroutine from a program.
  1535.    A standard slogan: "When in doubt, dike it out". (The implication
  1536. is that the program [or whatever] is so bad that taking something out
  1537. can only make things better!)
  1538.    The word "dikes" is widely used among mechanics and engineers to
  1539. mean "diagonal cutters", a heavy-duty metal cutting device. To "dike
  1540. something out" means to use such cutters to remove something. Among
  1541. hackers, this term has been metaphorically extended to nonphysical
  1542. objects such as pieces of program.
  1543.  
  1544. DO PROTOCOL verb.
  1545.    To perform an interaction with somebody or something according to
  1546. a well-defined standard procedure. For example: "Let's do protocol with
  1547. the check" at a restaurant means to ask the waitress for the check,
  1548. calculate the tip and everybody's share, make change as necessary, and
  1549. pay the bill.
  1550.  
  1551. DOUBLE BUCKY adjective.
  1552.    Using both the "control" and "meta" keys on a keyboard that has
  1553. them. "The EMACS command to reformat a LISP program is double-bucky-G".
  1554. (That is, the command is control-meta-G).
  1555.    For a complete explanation, see BUCKY BITS.
  1556.  
  1557.    The following lyrics were written on May 27, 1978, in celebration
  1558. of the Stanford keyboard. A typical MIT comment was that the "bucky
  1559. bits" ("control" and "meta" shifting keys) were nice, but there weren't
  1560. enough of them -- you could only type 512 different characters on a
  1561. Stanford keyboard. An obvious thing was simply to add more shifting
  1562. keys, and this was eventually done. One problem is that a keyboard with
  1563. that many shifting keys is hard on touch typists, who don't like to
  1564. move their hands away from the home position on the keyboard. It was
  1565. half-seriously suggested that the extra shifting keys be pedals; typing
  1566. on such a keyboard would be very much like playing a pipe organ. This
  1567. idea is mentioned below, in what is a parody of a very fine song by
  1568. Jeffrey Moss called "Rubber Duckie", which was published in The Sesame
  1569. Street Songbook.
  1570.  
  1571.          Double Bucky
  1572.  
  1573.    Double bucky, you're the one!
  1574.    You make my keyboard lots of fun.
  1575.       Double bucky, an additional bit or two:
  1576.    (Vo-vo-de-o!)
  1577.    Control and meta, side by side.
  1578.    Augmented ASCII, nine bits wide!
  1579.       Double bucky! Half a thousands glyphs, plus a few!
  1580.          Oh,
  1581.          I sure wish that I
  1582.          Had a couple of
  1583.             Bits more!
  1584.          Perhaps a
  1585.          Set of pedals to
  1586.          Make the number of
  1587.             Bits four:
  1588.          Double double bucky!
  1589.       Double bucky, left and right
  1590.       OR'd together, outta sight!
  1591.          Double bucky, I'd like a whole word of
  1592.          Double bucky, I'm happy I heard of
  1593.          Double bucky, I'd like a whole word of you!
  1594.  
  1595.                   --The Great QUUX
  1596.                     (with apologies to Jeffrey Moss)
  1597.  
  1598. DOWN adjective.
  1599.    Not working; deactivated. Example: "The Up escalator is down".
  1600. That is considered a humorous thing to say, but "The elevator is down"
  1601. always means "The elevator isn't working", and never refers to what
  1602. floor the elevator is on.
  1603.    Antonym: UP.
  1604.    GO DOWN verb. To stop functioning, usually said of the SYSTEM. The
  1605. message every hacker hates to hear from the operator is, "The system
  1606. will go down in five minutes".
  1607.    TAKE DOWN, BRING DOWN verb. To deactivate purposely, usually for
  1608. repair work. Example: "I'm taking the system down to work on that BUG
  1609. in the tape drive".
  1610.    See CRASH.
  1611.  
  1612. DPB (d:-pib', duh-pib') verb.
  1613.    To plop something down in the middle. Silly. Example: "Dpb
  1614. yourself into that couch there". (The connotation would be that the
  1615. couch is full except for one slot just big enough for you to sit in.
  1616. DPB means "DePosit Byte", and is the name of a PDP-10 instruction that
  1617. inserts some BITS into the middle of some other bits).
  1618.  
  1619. DRAGON noun.
  1620.    A program similar to a DAEMON, except that it doesn't sit around
  1621. waiting for something to happen but is instead used by the SYSTEM to
  1622. perform various useful tasks that just have to be done periodically.
  1623. A typical example would be an accounting program that accumulates
  1624. statistics, keeps track of who is logged in, and so on.
  1625.    Another example: Most time-sharing systems have several terminals,
  1626. and at any given time some are in use and some are sitting idle. The
  1627. idle ones usually sit there with some idiotic message on their screens,
  1628. such as "logged off", from the last time someone used it. One time-
  1629. -sharing system at MIT puts these idle terminals to good use by
  1630. displaying useful information on them, such as who is using the
  1631. computer, where they are, what they're doing, and what their telephone
  1632. numbers are, along with other information such as pretty pictures (the
  1633. picture collection includes a unicorn, Snoopy, and the U.S.S. Enter-
  1634. prise from "Star Treck"). All this information is displayed on idle
  1635. terminals by the "name dragon", so called because it originally printed
  1636. just the names of the users. (That it now shows all kinds of things,
  1637. including useless though pretty pictures, is an example of CREEPING
  1638. FEATURISM). The "name dragon" is a program started up by the system,
  1639. and it runs about every five minutes and updates the information on all
  1640. idly terminals.
  1641.  
  1642. DWIM (dwim) noun.
  1643.    A complicated procedure (in the INTERLISP dialect of LISP) that
  1644. attempts to correct your mistakes automatically. For example, if you
  1645. spell something wrong or don't balance your parentheses properly, it
  1646. tries to figure out what you meant. DWIM stands for "Do What I Mean".
  1647. When this works, it is very impressive. When it doesn't work, anything
  1648. can happen.
  1649.    When a program has become very big and complicated -- so com-
  1650. plicated that no one can understand how to use it -- it is often
  1651. suggested in jest that dwim be added to it.
  1652.    See BELLS AND WHISTLES.
  1653.  
  1654. EL CAMINO BIGNUM (el' k:-mee'noh big'num) noun.
  1655.    El Camino Real.
  1656.    El Camino Real is the name of a street through the San Francisco
  1657. peninsula that originally extended (and still appears in places) all
  1658. the way down to Mexico City. Navigation on the San Francisco peninsula
  1659. is usually done relative to El Camino Real, which is assumed to run
  1660. north and south even tough it doesn't really in many places (see
  1661. LOGICAL). El Camino Real runs right past Stanford University, and so is
  1662. familiar to hackers.
  1663.    The Spanish word real, which has two syllables (ree-ahl'), means
  1664. "royal"; El Camino Real is "the royal road". Now, the English word real
  1665. is used in mathematics to describe numbers (and by analogy is misused
  1666. in computer jargon to mean floating-point numbers). In the FORTRAN
  1667. language, for example, a "real" quantity is a number typically precise
  1668. to seven decimal places; and a "double-precision" quantity is a larger
  1669. floating-point number, precise to perhaps fourteen decimal places.
  1670.    When a hacker from MIT visited Stanford in 1976 or so, he remarked
  1671. what a long road El Camino Real was. Making a pun on "real", he started
  1672. calling it "El Camino Double Precision". But when the hacker was told
  1673. that the road was hundreds of miles long, he renamed it "El Camino
  1674. Bignum", and among hackers that name has stuck. (See BIGNUM).
  1675.  
  1676. ENGLISH noun.
  1677.    The source code for a program, which may be in any computer
  1678. language.
  1679.    This term is slightly obsolete, and used mostly by old-time
  1680. hackers who were around MIT in the mid-1960s. To a real hacker, a
  1681. program written in his favorite programming language is as readable as
  1682. English.
  1683.  
  1684. EPSILON (ep'si-lahn)
  1685.    1. noun. A small quantity of anything. Example: "The cost is
  1686. epsilon".
  1687.    2. adjective. Very small, negligible. "I tried to speed up the
  1688. program, but got epsilon improvement".
  1689.    WITHIN EPSILON OF preposition. Close enough to be indistin-
  1690. guishable for all practical purposes. This is even closer than being
  1691. within DELTA of. Example: "That's now what I asked for, but it's within
  1692. epsilon of what I wanted". Alternatively, it may mean not close enough,
  1693. but very little is required to get is there: "My program is within
  1694. epsilon of working".
  1695.    EPSILON SQUARED noun. A quantity even smaller than epsilon, as
  1696. small in relation to epsilon as epsilon is to something normal. Suppose
  1697. you buy a large computer for one million dollars. You probably need a
  1698. thousand-dollar terminal to go with it, but by comparison the cost of
  1699. that is epsilon. If you need a ten-dollar cable to connect them
  1700. together, its cost is epsilon squared.
  1701.    See DELTA.
  1702.    The terms epsilon and delta are names of Greek letter; the slang
  1703. usage stems from the traditional use of these letters in mathematics
  1704. for very small numerical quantities, particularly in so-called
  1705. "epsilon-delta" proofs in the differential calculus.
  1706.    Once "epsilon" has been mentioned, "delta" is usually used to mean
  1707. a quantity that is slightly greater than epsilon but still very small.
  1708. For example, "The cost isn't epsilon, but it's delta" means that the
  1709. cost isn't totally negligible, but it is nevertheless very small. A
  1710. quantity that is a  little bit smaller than epsilon is "epsilon over
  1711. 2", and "epsilon squared" is very much smaller than epsilon.
  1712.  
  1713. EXCH (eks'ch:, ekstch) verb.
  1714.    To exchange two things, one for the other; to swap places. Silly.
  1715. If you point to two people sitting down and say "Exch!" you are asking
  1716. them to trade places.
  1717.    EXCH, meaning EXCHange, is the name of a PDP-10 instruction that
  1718. exchanges the contents of a register and a memory location.
  1719.  
  1720. EXCL (eks'c:l) noun.
  1721.    The character "!". See CHARACTERS.
  1722.  
  1723. FAULTY adjective.
  1724.    Nonfunctional; buggy. This word means about the same thing as BAG-
  1725. BITING, BLETCHEROUS, and LOSING, but the connotation is much milder.
  1726.  
  1727. FEATURE noun.
  1728.    1. An intended property of behavior (as of a program). Whether it
  1729. is good is immaterial.
  1730.    2. A good property or behavior (as of a program). Whether it was
  1731. intended is immaterial.
  1732.    3. A surprising property of behavior; in particular, one that is
  1733. purposely inconsistent because it works better that way. For example,
  1734. in the EMACS text editor, the "transpose characters" command will
  1735. exchange the two characters on either side of the cursor on the screen,
  1736. except when the cursor is at the end of a line; in that case, the two
  1737. characters before the cursor are exchanged. While this behavior is
  1738. perhaps surprising, and certainly inconsistent, it has been found
  1739. through extensive experimentation to be what most users want. The
  1740. inconsistency is therefore a feature and not a BUG.
  1741.    4. A property or behavior that is gratuitous or unnecessary,
  1742. though perhaps impressive or cute. For example, one feature of the
  1743. MACLISP language is the ability to print numbers as Roman numerals. See
  1744. BELLS AND WHISTLES.
  1745.    5. A property of behavior that was put in to help someone else but
  1746. that happens to be in your way. A standard joke is that a bug can be
  1747. turned into a feature simply by documenting it (then theoretically no
  1748. one can complain about it because it's in the manual), or even by
  1749. simply declaring it to be good. "That's not a bug; it's a feature!"
  1750.    If someone tells you about some new improvement to a program, you
  1751. might respond, "Feetch, feetch!" The meaning of this depends critically
  1752. on vocal inflection. With enthusiasm, it means something like "Boy,
  1753. that's great! What a great HACK!" Grudgingly or with obvious doubt, it
  1754. means "I don't know. It sounds like just one more unnecessary and
  1755. complicated thing." With a tone of resignation, it means "Well, I'd
  1756. rather keep it simple, but I suppose it has to be done".
  1757.    The following list covers the spectrum of terms used to rate
  1758. programs or portions thereof (except for the first two, which tend to
  1759. be applied more to hardware or to the SYSTEM, but are included for
  1760. completeness):
  1761.  
  1762.       CRASH             LOSS           HACK
  1763.       STOPPAGE          MISFEATURE     WIN
  1764.       BRAIN DAMAGE      CROCK          FEATURE
  1765.       BUG               KLUDGE         PERFECTION
  1766.  
  1767.    The last is never actually attained.
  1768.  
  1769. FEEP (feep)
  1770.    1. noun. The soft electronic "bell" of a display terminal (except
  1771. for a DEC VT-52!): a beep.
  1772.    2. verb. To make (or to cause a terminal to make) a "feep" sound.
  1773. FEEPER noun. The device in the terminal (usually a loudspeaker of some
  1774. kind) that makes the feep sound. FEEPING CREATURISM noun. This term
  1775. isn't really well defined, but it sounds so nice (being a spoonerism on
  1776. CREEPING FEATURISM) that most hackers have said or heard it. It
  1777. probably has something to do with terminals prowling about in the dark
  1778. making their customary noises.
  1779.    A true TTY does not feep; it has a real mechanical bell that just
  1780. rings. Synonyms for "feep" are "beep", "bleep", or just about anything
  1781. suitably onomatopoeic. (Jeff MacNelly, in his comic strip Shoe, uses
  1782. the word "eep" for sounds made by computer terminals and video games;
  1783. this is perhaps the closest one yet.) The term "breedle" is sometimes
  1784. heard at Stanford, where the terminal bleepers are not particularly
  1785. soft. (They sound more like the musical equivalent of a raspberry or a
  1786. Bronx cheer. For a close approximation, imagine the sound of a "Star
  1787. Trek" communicator's beep lasting for five seconds). By contrast, the
  1788. feeper on a DEC VT-52 terminal has been compared to the sound of a '52
  1789. Chevy stripping it gears.
  1790.  
  1791. FENCEPOST ERROR noun.
  1792.    An "off-by-one" error: the discrete equivalent of a boundary
  1793. condition.
  1794.    This problem is often exhibited in programs containing iterative
  1795. loops: something will be done one time too few or too many. The term
  1796. comes from the following problem: "If you build a fence 100 feet long
  1797. with posts 10 feet apart, how many posts do you need?" (Either 9 or 11
  1798. is a better answer than the obvious 10.)
  1799.    For example, suppose you have a long list or array of items and
  1800. want to process items m through n. How many items are there? The
  1801. obvious answer is n-m, but that is off by one. The right answer is
  1802. n-m+1. A program that used the "obvious" formula would have a fencepost
  1803. error in it.
  1804.    Not all off-by-one problems are fencepost errors. The game of
  1805. Musical Chairs involves an off-by-one problem where N people try to sit
  1806. in N-1 chairs, but it's not a fencepost error. A fencepost error is
  1807. typified by counting things rather than counting the spaces between
  1808. them, or vice versa, or by neglecting to consider whether one should
  1809. count one or both of the ends of a row.
  1810.  
  1811. FINE adjective.
  1812.    Good, but not good enough to be CUSPY.
  1813.    This term is used primarily at WPI. The word "fine" is oc-
  1814. casionally heard elsewhere, too, but does not connote the implicit
  1815. comparison the higher level of perfection implied by CUSPY.
  1816.  
  1817. FLAG noun.
  1818.    A variable or quantity that can take on one of two values: a BIT,
  1819. particularly one that is used to indicate one of two outcomes or is
  1820. used to control which of two things is to be done. Example: "This flag
  1821. controls whether to clear the screen before printing the message". "The
  1822. program status word contains several flag bits".
  1823.  
  1824. FLAG DAY noun.
  1825.    A day on which a change is made that is neither forward- nor
  1826. backward compatible (so old programs won't work under the new system,
  1827. and new programs won't work under the old one), and that is costly to
  1828. make and costly to undo. Example: "If we change MACLISP to use square
  1829. brackets instead of parentheses, it will cause a flag day for every-
  1830. body". A flag day, as well as the weeks or months following, is a time
  1831. of great confusion for everyone concerned.
  1832.    This term has nothing to do with the use of the word FLAG to mean
  1833. a variable that has two values. It came into use when a massive change
  1834. was made to the MULTICS time-sharing system to convert from the old
  1835. ASCII code to the new one. This was scheduled for Flag Day, June 14,
  1836. 1966.
  1837.  
  1838. FLAKY, FLAKEY adjective.
  1839.    Subject to frequent or intermittent failure.
  1840.    This use is of course related to the common slang use of the word,
  1841. to describe a person as eccentric or crazy. A system that is flaky is
  1842. working, sort of, enough that you are tempted to try to use it; but it
  1843. fails frequently enough that the odds in favor of finishing what you
  1844. start are low.
  1845.  
  1846. FLAME
  1847.    1. verb. To speak incessantly and/or rabidly on some relatively
  1848. uninteresting subject or with a patently ridiculous attitude.
  1849.    2. noun. A speech or dialogue in which the speakers are flaming.
  1850.    3. noun. A subject on which a given person likes to flame.
  1851.    FLAME SESSION noun. A meeting in which everyone flames; a "bull
  1852. session".
  1853.    FLAME ON verb. To continue to flame.
  1854.    FLAMER noun. One who flames: a fanatic.
  1855.    FLAMAGE (flaym':j) noun. Flaming; the content of a flame. (Both
  1856. flamage and flaming are used in this sense).
  1857.    Synonym: RAVE.
  1858.    When a discussion degenerates into useless controversy, one might
  1859. tell the participants, "Now you're just flaming!" or "Stop all that
  1860. flamage!" to get them to cool down (so to speak).
  1861.  
  1862. FLAP verb.
  1863.    To give the command to unload a MICROTAPE or, more generally, any
  1864. magnetic tape from its drive. (When this operation is finished, the
  1865. take-up reel keeps spinning and the end of the tape goes flap, flap,
  1866. flap...) "I need to use the tape drive; could you please flap your
  1867. tape?"
  1868.  
  1869. FLAVOR noun.
  1870.    1. Variety, type, kind. "EMACS commands come in two flavors: sin-
  1871. gle-character and named". "These lights come in two flavors: big red
  1872. ones and small green ones". See VANILLA.
  1873.    2. The attribute that causes something to be FLAVORFUL. Usually
  1874. used in the phrase "yields additional flavor". Example: "This feature
  1875. yields additional flavor by allowing one to print text either right-
  1876. -side-up or upside-down."
  1877.    FLAVORFUL adjective. Aesthetically pleasing.
  1878.    Antonym: BLETCHEROUS. See TASTE.
  1879.  
  1880. FLUSH verb.
  1881.    1. To delete, destroy, or get rid of something, typically
  1882. something that is useless or superfluous. "All that nonsense has been
  1883. flushed". This is standard MIT terminology within the ITS time-sharing
  1884. SYSTEM for aborting an output operation. One speaks of the text that
  1885. would have been printed -- but was not -- as having been "flushed".
  1886. Under that time-sharing system, if you ask to have a file printed on
  1887. your terminal, it is printed a page at a time; at the end of each page,
  1888. it asks whether you want to see more. If you say no, it says "FLUSHED".
  1889. (A speculation is that this term arose from a vivid image of flushing
  1890. unwanted characters by hosing down the internal output buffer, washing
  1891. the characters away before they can be printed.)
  1892.    2. To exclude someone from an activity.
  1893.    3. To leave at the end of a day's work (as opposed to leaving for
  1894. a meal). Examples: "I'm going to flush now". "Time to flush". See GRONK
  1895. OUT.
  1896.  
  1897. FOO (foo)
  1898.    1. interjection. Term of disgust. For greater emphasis, one says
  1899. MOBY FOO (see MOBY).
  1900.    2. noun. The first metasyntactic variable. When you have to invent
  1901. an arbitrary temporary name for something for the sake of exposition,
  1902. FOO is usually used. If you need a second one, BAR or BAZ is usually
  1903. used; there is a slight preference at MIT for bar and at Stanford for
  1904. baz. (It was probably at Stanford that bar was corrupted to baz).
  1905.    Clearly, bar was the original, for the concatenation FOOBAR is
  1906. widely used also, and this in turn can be traced to the obscene acronym
  1907. "FUBAR" that arose in the armed forces during World War II) If bar is
  1908. used, then baz is used as a third name after that.
  1909.    Example: "The bug can happen in this way. Suppose you have two
  1910. functions FOO and BAR. FOO calls BAR with two arguments. Now BAR calls
  1911. BAZ, passing it just one of the two arguments..." In effect, these
  1912. words serve as extra pronouns; they are always "nonce names". The very
  1913. fact that they always serve this purpose allows some abbreviation. The
  1914. preceding example might be shortened without loss of clarity to: "The
  1915. bug can happen in this way. Suppose FOO calls BAR with two arguments.
  1916. Now BAR calls BAZ, passing it just one of the two arguments..."
  1917.    Words such as "foo" are called "metasyntactic variables" because,
  1918. just as a mathematical variable stands for some number, so "foo" always
  1919. stands for the real name of the thing under discussion. A hacker avoids
  1920. using "foo" as the real name of anything. Indeed, a standard convention
  1921. is that any file with "foo" in its name is temporary and can be deleted
  1922. on sight.
  1923.    FOO? What? What's going on here? See COM MODE.
  1924.    FOOBAR. A concatenation of FOO and BAR. "Foo" is certainly a
  1925. favorite among hackers. While its use in connection with BAR clearly
  1926. stems from "FUBAR", its original appearance appears to be untraceable,
  1927. and may derive from other common interjections such as the Yiddish
  1928. "Feh!". Bill Holman featured the word "foo" prominently in his comic
  1929. strip Smokey Stover.
  1930.  
  1931. FRIED adjective.
  1932.    1. Nonfunctional because of hardware failure; burned out. Example:
  1933. "The disk controller is fried". (Sometimes this literally happens to
  1934. electronic circuits! In particular, resistors can burn out and
  1935. transformers can melt down, emitting terrible-smelling smoke. However,
  1936. this term is also used metaphorically.)
  1937.    2. Of people, exhausted, "burned out". This is said particularly
  1938. of those who continue to work in such a state, and often used as an
  1939. explanation or excuse. Example: "Yeah, I know that fix destroyed the
  1940. file system, but I was fried when I put it in".
  1941.    See FRY
  1942.  
  1943. FROB (frahb)
  1944.    1. noun. A protruding arm or trunnion. (This is the official
  1945. definition by the Tech Model Railroad Club at MIT).
  1946.    2. Any somewhat small thing; an object that you can comfortably
  1947. hold in one hand. Something you can frob. See FROBNICATION.
  1948.    3. verb. Abbreviated form of FROBNICATE.
  1949.    FROBNICATE (frahb'ni-kayt) verb. To manipulate or adjust; to do
  1950. the appropriate thing to; to play with; to fondle. This word is usually
  1951. abbreviated to simply "frob", but frobnicate is recognized as the
  1952. official full form. Examples: "Please frob the light switch". (That is,
  1953. flip the light switch) "Stop frobbing that clasp. You'll break it".
  1954.    Synonyms: TWEAK, TWIDDLE.
  1955.    Frob, twiddle, and tweak sometimes connote points along a
  1956. spectrum. Frob connotes aimless manipulation; twiddly connotes gross
  1957. manipulation, often a coarse search for a proper setting; tweak
  1958. connotes fine tuning. Suppose someone is turning a knob on an oscil-
  1959. loscope. If he's carefully adjusting it, searching for some particular
  1960. point, he is probably tweaking it. If he is turning it rather quickly
  1961. while looking at the screen, he is probably twiddling it. But if he's
  1962. just doing it because turning a knob is fun, he's frobbing it.
  1963.  
  1964. FROBNITZ (frahb'nitz), plural FROBNITZEM (frahb'nit-z:m) noun.
  1965.    1. An unspecified physical object; a widget; a black box. 2. By
  1966. extension, a data structure in a program, when regarded as an object.
  1967.    This rare form is usually abbreviated to FROTZ (frahtz), or more
  1968. commonly, to FROB. Also used are frobnule (frahb'nyool), frobule
  1969. (frahb'yool), and frobnodule (frahb'nahd'yool). Starting perhaps in
  1970. 1979, "frobboz" (fruh-bahz', fr:-bahz'), plural "frobbotzim" (fruh-
  1971. -baht'z:m), has also become very popular, largely due to its exposure
  1972. as a name via the Adventure-type game called Zork (which originated at
  1973. MIT).
  1974.  
  1975. FROG, PHROG
  1976.    1. interjection. Term of disgust. (Hackers seem to have a lot of
  1977. them).
  1978.    2. noun. Of things, a CROCK. Of people, something between a turkey
  1979. and a toad.
  1980.    FROGGY adjective. Similar to BAGBITING, but milder. "This froggy
  1981. program is taking forever to run!"
  1982.  
  1983. FROTZ (frahtz) noun.
  1984.    An abbreviated form of FROBNITZ.
  1985.    MUMBLE FROTZ interjection. A term of fairly mild disgust, usually
  1986. used as an objection to something someone has just said. See MUMBLE.
  1987.  
  1988. FRY verb.
  1989.    1. To fail. Said especially of smoke-producing hardware failures.
  1990.    2. More generally, to become nonworking. (This term is never said
  1991. of software, only of hardware and humans).
  1992.    See FRIED.
  1993.  
  1994. FTP (ef'tee'pee')
  1995.    1. noun. The File Transfer Protocol for transmitting files between
  1996. systems on the ARPANET.
  1997.    2. noun. A program that implements the protocol and thereby helps
  1998. you to transfer files.
  1999.    3. verb. To transfer a file using the File Transfer Program.
  2000. Example: "Lemme get this copy of Wuthering Heights FTP'd from Stan-
  2001. ford".
  2002.    4. verb. More generally, to transfer a file between two computers
  2003. using any electronic network such as ETHERNET (as opposed, say, to
  2004. using a magnetic tape as the transfer medium).
  2005.  
  2006. FUDGE
  2007.    1. verb. To perform in an incomplete but marginally acceptable
  2008. way, particularly with respect to the writing of a program. "I didn't
  2009. feel like doing it all the right way, so I fudged it."
  2010.    2. noun. The code resulting from fudging as defined above.
  2011.    3. verb. To make something come out the way it was supposed to by
  2012. making an ex post facto change, such as to a FUDGE FACTOR.
  2013.    All these uses are related to the common slang use of the word to
  2014. mean something like cheating, as when a scientist fudges his mea-
  2015. surements to fit his pet theory.
  2016.    FUDGE FACTOR noun. A value or parameter that is varied in an ad
  2017. hoc way to produce a desired result. See SLOP.
  2018.  
  2019. GABRIEL noun.
  2020.    An unnecessary (in the opinion of the opponent) stalling tactic
  2021. when playing volleyball, such as tying one's shoelaces repeatedly or
  2022. asking the time. Also used to refer to the perpetrator of such tactics.
  2023.    GABRIEL MODE noun. The state a person is in when he performs one
  2024. stalling tactic after another. See MODE.
  2025.    This is in honor of Richard P. Gabriel, a Stanford hacker and vol-
  2026. leyball fanatic. His reputation for stalling is a bit undeserved, and
  2027. has the status of a running gag. One may speak of "pulling a Gabriel"
  2028. or of "being in Gabriel mode."
  2029.    See RPG.
  2030.  
  2031. GARPLY (gahrp'lee) noun.
  2032.    A meta-word, like FOO. This one is used mostly at Stanford.
  2033.  
  2034. GAS
  2035.    1. interjection. A term of disgust and hatred, implying that gas
  2036. should be dispensed in generous quantities, thereby extermination the
  2037. source of irritation. "Some LOSER just reloaded the SYSTEM for no
  2038. reason! Gas!".
  2039.    2. An exclamation suggestion that someone or something ought to be
  2040. FLUSHED (gotten rid of) out of mercy. "The system is getting WEDGED
  2041. every few minutes. Gas!"
  2042.    3. verb. To get rid of; to flush. "You should gas that old CRUFTY
  2043. software".
  2044.    GASEOUS adjective. Deserving of being gassed.
  2045.  
  2046. GC (jee'see')
  2047.    1. verb. To clean up and throw away useless things. "I think I'll
  2048. GC the top of my desk today".
  2049.    2. To recycle, reclaim, or put to another use.
  2050.    3. To forget. (The implication is sometimes that one has done so
  2051. deliberately). "You told me last week where it was, but I GC'd those
  2052. bits".
  2053.    4. noun. An instantiation of the GC process.
  2054.    GC is an abbreviation of "garbage collect" or "garbage col-
  2055. lection", which is computer science jargon for a particular class of
  2056. strategies used to recycle computer memory. One such strategy involves
  2057. periodically scanning all the data in memory and discarding useless
  2058. data items.
  2059.    Occasionally the full phrase is used. Note the ambiguity in usage
  2060. which has to be resolved by context: "I'm going to garbage-collect my
  2061. desk" usually means to clean out the drawers, but it could also mean to
  2062. throw away or recycle the desk itself.
  2063.  
  2064. GEDANKEN (ge-dahnk-:n) adjective.
  2065.    Wild-eyed; impractical; not well-thought-out; untried; untested.
  2066. Gedanken is a German word for thought. A thought experiment is one you
  2067. carry out in you head. In physics, the term "gedanken experiment"
  2068. refers to an experiment that is impractical to carry out but useful to
  2069. consider theoretically. (A classic gedanken experiment of relativity
  2070. theory involves thinking about a man flying through space in an
  2071. elevator). Gedanken experiments are very useful in physics, but you
  2072. have to be careful. It was a gedanken experiment that led Aristotle to
  2073. conclude that heavy things always fall faster than light things (he
  2074. thought about a rock and a feather). This was accepted until Galileo
  2075. proved otherwise.
  2076.    Among hackers, however, the word has a pejorative connotation. It
  2077. is said of a project -- especially one on artificial intelligence
  2078. research -- which is written up in grand detail (typically as a Ph.D.
  2079. thesis) without ever begin implemented to any great extent. Such a
  2080. project is usually perpetrated by people who aren't very good hackers
  2081. or find programming distasteful or are just in a furry. A gedanken
  2082. thesis is usually marked by an obvious lack of intuition about what is
  2083. programmable and what is not, and about what does and does not
  2084. constitute a clear specification of an algorithm.
  2085.  
  2086. GLASS TTY (glass ti'tee) noun.
  2087.    A terminal which has a display screen but which, because of
  2088. hardware or software limitations, behaves like a teletype or other
  2089. printing terminal, thereby combining the disadvantages of both. Like a
  2090. printing terminal, it can't do fancy display hacks; and like a display
  2091. terminal, it doesn't produce hard copy (a paper copy that you can carry
  2092. away with you). An example is the Lear Siegler ADM-3 terminal, which
  2093. was actually advertised as "the dumb terminal" when it first came out
  2094. (implying that it was also cheap). See TTY.
  2095.  
  2096. GLITCH
  2097.    1. noun. A sudden interruption in electric service, sanity,
  2098. continuity, or program function. It may or may not be possible to
  2099. recover from it.
  2100.    2. verb. To commit a glitch. See GRITCH.
  2101.    An interruption in electric service is usually called a "power
  2102. glitch". This is of grave concern because it usually CRASHES all the
  2103. computers.
  2104.    Have you ever been in the middle of a sentence and then forgotten
  2105. what you were going to say? If this happened to a hacker, he might say,
  2106. "Sorry, I just glitched" (This would be a "mental glitch").
  2107.    This word almost certainly comes from Yiddish, where the verb
  2108. glitschen means to slide or skid on a slippery surface. A fall while
  2109. walking on ice would be a glitch.
  2110.    3. verb. To scroll a display screen.
  2111.    The use of "glitch" to mean "scroll" needs some explanation. When
  2112. a program prints text on a display screen, there is a question of what
  2113. to do when it reaches the last line of the screen. There are two main
  2114. strategies:
  2115.    After the last like, go back to the top line (possibly clearing
  2116. the screen first). This is called "wraparound".
  2117.    Move all the lines of text on the screen upward one line. The top
  2118. line of text disappears (it "falls off the top of the screen") because
  2119. there's no more room for it, and the bottom line of the screen becomes
  2120. empty and can be used to display the next line of text. This is called
  2121. "scrolling", because it looks as though a papyrus scroll is zipping
  2122. past your eyes, unwinding at the bottom and winding up again at the
  2123. top.
  2124.    The advantage of the scrolling technique is that new text always
  2125. appears at the bottom of the screen. The disadvantage is that all the
  2126. text keeps moving upward as new lens are displayed, so it's awfully
  2127. hard to read it as it flashes by on the screen. (Movie fans know about
  2128. this problem from trying to read the credits at the end).
  2129.    The computer system at Stanford compromises. It scrolls, but when
  2130. the last line of the screen has been used, the text is moved up many
  2131. line (about ten or so). This means that the top ten lines all disappear
  2132. at once, but the rest stay put on the screen while the next ten lines
  2133. are being displayed at the bottom. So instead of appearing to move
  2134. continuously up the screen, the text "jerks" or "glitches" every five
  2135. seconds or so.
  2136.  
  2137. GLORK (glohrk)
  2138.    1. interjection. Term of mild surprise, usually tinged with
  2139. outrage, as when one attempts to save the results of two house of
  2140. editing and finds that the SYSTEM has just CRASHED.
  2141.    2. A meta-word. See FOO.
  2142.    3. verb. Similar to GLITCH, but usually used reflexively. "My
  2143. program just glorked itself".
  2144.  
  2145. GOBBLE verb.
  2146.    To consume or to obtain. "Gobble up" tends to imply "consume",
  2147. while "gobble down" tends to imply "obtain".
  2148.    Examples: "The output spy gobbles characters out of a TTY output
  2149. buffer". (See OUTPUT SPY). "I guess I'll gobble down a copy of the
  2150. documentation tomorrow."
  2151.    See SNARF.
  2152.  
  2153. GORP (gohrp)
  2154.    This is yet another metasyntactic variable like FOO and BAR. It is
  2155. used primarily at CMU. (It may be related to its use as the generic
  2156. term for hiker's dried food, stemming from the acronym "Good Old
  2157. Raisins and Peanuts", but this is uncertain.)
  2158.  
  2159. GOSPERISM (gahss'p:r-iz':m)
  2160.    A hack, invention, or saying by arch-hacker R. William (Bill)
  2161. Gosper. This notion merits its own term because there are so many of
  2162. them. Many of the entries in HAKMEM are gosperisms. See also LIFE.
  2163.  
  2164. GRIND verb.
  2165.    1. To format code, especially LISP code, by indenting the lines so
  2166. that is looks pretty. (This term is used primarily within the MACLISP
  2167. community. Elsewhere, to format code so that it looks nice is to
  2168. "pretty-print" it.)
  2169.    2. To run seemingly interminably, performing some tedious and in-
  2170. herently useless task. Synonym: CRUNCH.
  2171.  
  2172. GRITCH
  2173.    1. noun. A complaint (often caused by a GLITCH).
  2174.    2. verb. To complain. Often verb-doubled: "Gritch, gritch".
  2175.  
  2176. GROK (grahk) verb.
  2177.    To understand, usually in a global sense especially, to understand
  2178. all the implications and consequences of making a change. Example:
  2179. "JONL is the only one who groks the MACLISP compiler".
  2180.    This word comes from the science-fiction novel Stranger in a
  2181. Strange Land by Robert Heinlein, where it is a Martian word meaning
  2182. roughly "to be one with".
  2183.  
  2184. GRONK (grahnk) verb.
  2185.    To clear the state of a WEDGED device and restart it. More severe
  2186. than "to FROB".
  2187.    GRONKED adjective. Of people, the condition of feeling very tired
  2188. or sick. Of things, totally nonfunctional. (For things, gronked and
  2189. BROKEN mean about the same thing, but they have very different
  2190. connotations when used of people. "Gronked" connotes physical ex-
  2191. haustion of illness, while "broken" connotes mental or emotional
  2192. illness.)
  2193.    GRONK OUT verb. Of things, to cease functioning. "My terminal just
  2194. gronked out". Of people, to go home and go to sleep. "I guess I'll
  2195. gronk out now. See you all tomorrow." When you are gronked, the best
  2196. thing to do is to gronk out.
  2197.    "Gronk out" is a more specific term than "flush". In both cases
  2198. you stop hacking and leave, but when you flush you might go home or
  2199. might go to a restaurant or to see a movie. If you gronk out, however,
  2200. you intend to go get some sleep.
  2201.    GRONK has been popularized as a noise made by dinosaurs in the
  2202. comic strip B.C., by Johnny Hart, but the hackers' connotation
  2203. apparently predates Hart's usage.
  2204.  
  2205. GROVEL verb.
  2206.    1. To work interminably and without apparent progress. Often used
  2207. with "over" or "through". Example: "The file scavenger has been
  2208. groveling through the file directories for ten minutes now".
  2209.    2. To examine minutely or in complete detail. "The compiler
  2210. grovels over the entire source program before beginning to translate
  2211. it." "I groveled through all the documentation, but I still couldn't
  2212. find the command I wanted".
  2213.    GROVEL OBSCENELY. This is the standard emphatic form of grovel.
  2214.  
  2215. GRUNGY (gruhn'jee) adjective.
  2216.    1. Incredibly dirty, greasy, grubby. Anything that has been washed
  2217. within the last year is not really grungy. If you sleep all night in
  2218. your clothes and then get up and start hacking again, you feel grungy.
  2219.    2. More generally, awful or ugly. Programs (especially CROCKS) can
  2220. be described as grungy. A person with a headache or a cold probably
  2221. feels grungy.
  2222.  
  2223. GUBBISH (guhb'ish) noun.
  2224.    Garbage; crap; nonsense. "What is all this gubbish?" (This word is
  2225. probably a portmanteau of "garbage" and "rubbish".)
  2226.  
  2227. GUN verb.
  2228.    To forcibly terminate a program. May be used with or without
  2229. "down". "Some idiot left a useless background program running, soaking
  2230. up half the CYCLES. So I gunned it."
  2231.  
  2232. HACK
  2233.    1. noun. A quick bit of work that produces what is needed, but not
  2234. well.
  2235.    2. The result of that work: a CROCK. (Occasionally the connotation
  2236. is affectionate).
  2237.    3. An incredibly good, and perhaps very time-consuming, piece of
  2238. work that produces exactly what is needed.
  2239.    4. The result of that work.
  2240.    5. A clever technique.
  2241.    6. A brilliant practical joke. The value of the hack varies in
  2242. proportion to its cleverness, harmlessness, surprise values, fame, and
  2243. appropriate use of technology.
  2244.    7. verb. With "together", to throw something together so it will
  2245. work. See CRUFT and KLUDGE.
  2246.    8. To bear something emotionally or physically. "I can't hack this
  2247. heat!".
  2248.    9. To work with a computer.
  2249.    10. To work on something (typically a program). In specific sense:
  2250. "What are you doing". "I'm hacking TECO". In general sense: "What do
  2251. you do around here?" "I hack TECO". (The former is time-immediate, the
  2252. latter time-extended.) More generally, "I hack x" is roughly equivalent
  2253. to "X is my bag". Example: "I hack solid-state physics".
  2254.    11. To pull a prank on. See definition 6 above, and also de-
  2255. finition 7 of HACKER.
  2256.    12. To waste time (as opposed to TOOL). Example: "Watcha up to?"
  2257. "Oh, just hacking".
  2258.    HACK VALUE noun. Term used as the reason or motivation for
  2259. expending effort toward a seemingly useless goal, the point being that
  2260. the accomplished goal is a hack. For example, the MACLISP language can
  2261. read and print integers as Roman numerals; the code for this was
  2262. installed purely for hack value.
  2263.    HACK UP (ON) verb. To hack, but with the connotation that the
  2264. result is a hack as in definition 2, above. Examples: "You need a
  2265. quick-and-dirty sorting routine? I'll see if I can hack one up by
  2266. tomorrow." "I hacked up on EMACS so it can use the Greek alphabet".
  2267. HOW'S HACKING? A friendly greeting among hackers. (It recognizes the
  2268. other person as a hacker and invites him to describe what he has been
  2269. working on recently.)
  2270.    HAPPY HACKING A farewell.
  2271.    BACK TO HACKING Another farewell. "Happy hacking" implies that the
  2272. other person will continue hacking (perhaps you interrupted him). "Oh,
  2273. well, back to hacking" implies that you, the speaker, are going to
  2274. return to work (and perhaps the other person also).
  2275.    HACK, HACK. A somewhat pointless but friendly comment, often used
  2276. as a farewell but occasionally also as a greeting.
  2277.    "The word 'hack' doesn't really have sixty-nine different
  2278. meanings", according to Phil Agre, an MIT hacker. "In fact, one which
  2279. defies articulation. Which connotation is implied by a given use of the
  2280. word depends in similarly profound ways on the context. Similar remarks
  2281. apply to a couple of other hacker words, most notably RANDOM.
  2282.    Hacking might be characterized as "an appropriate application of
  2283. ingenuity". Whether the result is a quick-and-dirty patchwork job or a
  2284. carefully crafted work of art, you have to admire the cleverness that
  2285. went into it. Here are examples of practical-joke hacks:
  2286.  
  2287.    (1) In 1961, students from Caltech (California Institute of
  2288. Technology in Pasadena) hacked the Rose Bowl football game. One student
  2289. posed as a reporter and "interviewed" the director of the University of
  2290. Washington card stunts (such stunts involve people in the stands who
  2291. hold up colored cards to make pictures). The reporter learned exactly
  2292. how the stunts were operated, and also that the director would be out
  2293. to dinner later.
  2294.    While the director was eating, the students (who called themselves
  2295. the "Fiendish Fourteen") picked a lock and stole one of the direction
  2296. sheets for the card stunts. They then had a printer run of 2300 copies
  2297. of the sheet. The next day they picked the lock again and stole the
  2298. master plans for the stunts, large sheets of graph paper colored in
  2299. with the stunt pictures. Using these as a guide, they carefully made
  2300. "corrections" for three of the stunts on the duplicate instruction
  2301. sheets. Finally, they broke in once more, replacing the stolen master
  2302. plans and substituting the stack of altered instruction sheets for the
  2303. original set. The result was that three of the pictures were totally
  2304. different. Instead of spelling WASHINGTON, the word CALTECH was
  2305. flashed. Another stunt showed the word HUSKIES, the Washington
  2306. nickname, but spelled it backward. And what was supposed to have been a
  2307. picture of a husky instead showed a beaver. (Both Caltech and MIT use
  2308. the beaver as a mascot. Beavers are nature's engineers).
  2309.    After the game, the Washington faculty athletic representative
  2310. said, "Some thought it ingenious; others were indignant." The Wa-
  2311. shington student body president remarked, "No hard feelings, but at the
  2312. time it was unbelievable. We were amazed."
  2313.    This is now considered a classic hack, particularly because
  2314. revising the direction sheets constituted a form of programming not
  2315. unlike computer programming.
  2316.  
  2317.    (2) On November 20, 1982, MIT hacked the Harvard-Yale football
  2318. game. Just after Harvard's second touchdown against Yale in the second
  2319. quarter, a small black ball popped up out of the ground at the 40-yard
  2320. line and grew bigger and bigger and bigger. The letters "MIT" appeared
  2321. all over the ball. As the players and officials stood around gawking,
  2322. the ball grew to six feet in diameter and then burst with a bang and a
  2323. cloud of white smoke.
  2324.    As the Boston Globe later reported, "If you want to know the
  2325. truth, MIT won The Game".
  2326.  
  2327.    The prank had taken weeks of careful planning by members of MIT's
  2328. Delta Kappa Epsilon fraternity. The device consisted of a weather
  2329. balloon, a hydraulic ram powered by Freon gas to lift it out of the
  2330. ground, and a vacuum-cleaner motor to inflate it. The hackers made
  2331. eight separate expeditions to Harvard Stadium between 1:00 and 5:00 AM,
  2332. in which they located an unused 110-volt circuit in the stadium and ran
  2333. buried wiring from the balloon device. When the time came to activate
  2334. the device, two fraternity members had merely to flip a circuit breaker
  2335. and push a plug into an outlet.
  2336.    This stunt had all the earmarks of a perfect hack: surprise,
  2337. publicity, the ingenious use of technology, safety, and harmlessness.
  2338. The use of manual control allowed the prank to be timed so as not to
  2339. disrupt the game (it was set off between plays so the outcome of the
  2340. game would not be affected). The perpetrators had even thoughtfully
  2341. attached a note to the balloon explaining that the device was not
  2342. dangerous and contained no explosives.
  2343.    Harvard president Derek Bok commented: "They have an awful lot of
  2344. clever people down there at MIT, and they did it again." President Paul
  2345. E. Gray of MIT said, "There is absolutely no truth to the rumor that I
  2346. had to do with it, but I wish there were." Such is the way of all good
  2347. hacks.
  2348.  
  2349. HACK ATTACK noun.
  2350.    A period of greatly increased hacking activity. "I've been up for
  2351. thirty hours; I had a hack attack and finished off that new FEATURE I
  2352. thought would take two weeks to program."
  2353.  
  2354. HACKER noun.
  2355.    1. A person who enjoys learning the details of computer systems
  2356. and how to stretch their capabilities -- as opposed to most users of
  2357. computers, who prefer learn only the minimum amount necessary.
  2358.    2. One who programs enthusiastically, or who enjoys programming
  2359. rather than just theorizing about programming.
  2360.    3. A person capable of appreciating HACK VALUE.
  2361.    4. A person who is good at programming quickly. (By the way, not
  2362. everything a hacker produces is a hack).
  2363.    5. An expert on a particular program, or one who frequently does
  2364. work using it or on it. Example: "A SAIL hacker". (This definition and
  2365. the preceding ones are correlated, and people who fit them congregate).
  2366.    6. An expert of any kind. One might be an astronomy hacker, for
  2367. example.
  2368.    7. A malicious or inquisitive meddler who tries to discover
  2369. information by poking around. For example, a "password hacker" is one
  2370. who tries, possibly by deceptive or illegal means, to discover other
  2371. people's computer passwords. A "network hacker" is one who tries to
  2372. learn about the computer network (possibly because he wants to improve
  2373. it or possibly because he wants to interfere -- one can tell the
  2374. difference only by context and tone of voice).
  2375.    HACKISH adjective. Being or involving a hack.
  2376.    HACKISHNESS, HACKITUDE noun. The quality of being or involving a
  2377. hack. (The word "hackitude" is considered silly; the standard term is
  2378. "hackishness").
  2379.    Hackers consider themselves somewhat of an elite, though one to
  2380. which new members are gladly welcome. It is a meritocracy based on
  2381. ability. There is a certain self-satisfaction in identifying yourself
  2382. as a hacker (but if you claim to be one and are not, you're quickly
  2383. labeled BOGUS).
  2384.  
  2385. HAIR noun.
  2386.    Complexity. "Decoding TECO commands requires a certain amount of
  2387. hair".
  2388.    INFINITE HAIR, HAIR SQUARED noun. Extreme complexity. The phrase
  2389. "infinite hair" is usually used in sentences, while "hair squared" is
  2390. used as an interjection. For example: "I wrote a program to do my
  2391. income taxes; properly handling Schedule G requires infinite hair". (To
  2392. which his friend replies, "Hair squared!")
  2393.  
  2394. HAIRY adjective.
  2395.    1. Overly complicated. "DWIM is incredibly hairy".
  2396.    2. Incomprehensible. "DWIM is incredibly hairy".
  2397.    3. Of people: High-powered, authoritative, rare, expert, or in-
  2398. comprehensible. This usage is difficult to explain except by example:
  2399. "He knows a hairy lawyer who says there's nothing to worry about". F.
  2400. Lee Bailey would be considered hairy.
  2401.  
  2402. HAKMEM (hak'mem) noun.
  2403.    MIT Artificial Intelligence Memo 239 (February 1972). A collection
  2404. of neat mathematical, programming, and electronic hacks contributed by
  2405. people at MIT and elsewhere. (The title of the memo really is HAKMEM,
  2406. which is a portmanteau word for "hacks memo".) Some of them are very
  2407. useful techniques or powerful theorems, but most fall into the category
  2408. of mathematical and computer trivia. A sampling of the entries (with
  2409. authors), slightly paraphrased:
  2410.  
  2411. Item 41.    (Gene Salamin) There are exactly 23,000 prime numbers
  2412.             less than 2^18.
  2413. Item 46.    (Rich Schroeppel) The most probable suit distribution in
  2414.             bridge hands is 4-4-3-2, as compared to 4-3-3-3, which
  2415.             is the most evenly distributed. This is because the
  2416.             world likes to have unequal numbers: a thermodynamic
  2417.             effect saying things will not be in the state of lowest
  2418.             energy, but in the state of lowest disordered energy.
  2419. Problem 81  (Rich Schroeppel) Count the magic squares of order 5
  2420.             (that is, all the 5-by-5 arrangements of the numbers
  2421.             from 1 to 25 such that all rows, columns and diagonals
  2422.             add up to the same number). There are about 320 million,
  2423.             not counting those that differ only by rotation and re-
  2424.             flection.
  2425. Item 174.   (Bill Gosper and Stuart Nelson) 21963283741 is the only
  2426.             number such that if you represent it on the PDP-10 as
  2427.             both an integer and a floating-point number, the bit
  2428.             patterns of the two representations are identical.
  2429.  
  2430.    HAKMEM also contains some rather more complicated mathematical and
  2431. technical items, but these examples show some of its fun flavor.
  2432.  
  2433. HANDWAVE
  2434.    1. verb. To gloss over a complex point; to distract a listener; to
  2435. support a (possibly actually valid) point with blatantly faulty logic.
  2436. If someone starts a sentence with "Clearly..." or "Obviously..." or "It
  2437. is self-evident that...", you can be sure he is about to handwave.
  2438.    The idea is that if you wave your hands at the right moment, the
  2439. listener may be sufficiently distracted that he will not notice that
  2440. what you have said is BOGUS. Alternatively, if a listener does object,
  2441. you might try to dismiss the objection "with a wave of your hand".
  2442.    2. noun. A specific act of handwaving.
  2443.    The use of this word is often accompanied by gestures both hands
  2444. up, palms forward, swinging the hands in a vertical plane pivoting at
  2445. the elbows and/or shoulders (depending on the magnitude of the
  2446. handwave); alternatively, holding the forearms still while rotating the
  2447. hands at the wrist suffice as a remark. If a speaker makes an outra-
  2448. geous, unsupported assumption, you might simply wave your hands in this
  2449. way as an accusation, more eloquent than words could express, that his
  2450. logic is faulty.
  2451.  
  2452. HANG verb.
  2453.    1. To wait for some event to occur; to hang around until something
  2454. happens. Example: "The program prints out a menu and then hangs until
  2455. you type a character".
  2456.    2. To wait for some event that will never occur. "The system is
  2457. hanging because the disk controller never sent the interrupt signal".
  2458.    HUNG adjective. In the state of hanging. If you're hacking, away
  2459. at a terminal and suddenly the computer stops responding, you might
  2460. yell across the hallway, "Is the system hung?".
  2461.    Synonym: WEDGED.
  2462.  
  2463. HARDWARILY (hahrd-war':-lee) adverb.
  2464.    In a way pertaining to hardware. "The SYSTEM is hardwarily
  2465. unreliable". Note the adjective "hardwary" is not used. See SOFTWARILY.
  2466.  
  2467. HIRSUTE adjective.
  2468.    This word is occasionally used humorously as a synonym for HAIRY.
  2469.  
  2470. HOOK noun.
  2471.    An extraneous piece of software or hardware included in order to
  2472. simplify later changes of to permit changes by a user. For instance, a
  2473. PDP-10 program might execute a location that is normally a JFCL (no
  2474. operation), but by changing the JFCL to a PUSHJ (subroutine call) one
  2475. can insert a debugging routine at that point.
  2476.    As another example, a simple program that prints numbers might
  2477. always print them in base ten, but a more flexible version would let a
  2478. variable determine what base to use. Setting the variable to "5" would
  2479. make the program print numbers in base five. The variable is a simple
  2480. hook. An even more flexible program might examine the variable and
  2481. treat any other number as the address of a user-supplied program for
  2482. printing a number. This is a very powerful hook: one can then write a
  2483. routine to print numbers as Roman numerals, say, or as Hebrew ch-
  2484. aracters, and connect it to the program by hanging it on the hook.
  2485. Often the difference between a good program and a superb one is that
  2486. the latter has useful hooks in judiciously chosen places. Both may do
  2487. the original job about equally well, but the one with the hooks is much
  2488. more flexible for future expansion of capabilities.
  2489.  
  2490. ILL MEM REF (ill'mem'ref') noun.
  2491.    A lapse of memory; a GLITCH. This phrase is a contraction of
  2492. "illegal memory reference", computer jargon for the result of im-
  2493. properly accessing a computer's memory. Example: "I recognized his
  2494. face, but got an ill mem ref on his name".
  2495.    See NXM.
  2496.  
  2497. INFINITE adjective.
  2498.    Consisting of a large number of objects; extreme. Used very
  2499. loosely. Example: "This program produces infinite garbage". "He is an
  2500. infinite LOSER". See HAIR.
  2501.    The slang use of "infinite" is an abuse of its precise technical
  2502. meaning in mathematics.
  2503.  
  2504. INTERCAL (int':r-cal) noun.
  2505.    A computer language designed by Donald R. Woods and James M. Lyon.
  2506. INTERCAL is purposely different from any other computer language in all
  2507. ways but one: it is purely written language, being totally unspeakable.
  2508.    The name "INTERCAL" is an abbreviation for "Compiler Language With
  2509. No Pronounceable Acronym".
  2510.    An excerpt from the INTERCAL Reference Manual will make the style
  2511. of the language clear. In most programming languages, if you want a
  2512. variable (say A) to have the value 65536, you would write something
  2513. like
  2514.    LET A=65536
  2515. or
  2516.    A:=65536;
  2517.  
  2518.    The INTERCAL Reference Manual, however, explains that "it is a
  2519. well-known and oft-demonstrated fact that a person whose work is
  2520. incomprehensible is held in high esteem. For example: if one were to
  2521. state that the simplest way to store 65536 in an INTERCAL variable is
  2522.    DO :1 <- #0ó#256
  2523. any sensible programmer would say that that was absurd. Since this is
  2524. indeed the simplest method, the programmer would be made to look
  2525. foolish in front of his boss, who would of course have happened to turn
  2526. up, as bosses are wont to do. The effect would be no less devastating
  2527. for the programmer having been correct.".
  2528.    INTERCAL has many other peculiar features, as well, to make it
  2529. even more unspeakable. The language was actually implemented and used
  2530. by many people at Princeton University.
  2531.    See CHARACTERS for a discussion of names of characters in
  2532. INTERCAL.
  2533.  
  2534. IRP (urp) verb.
  2535.    To perform a series of tasks repeatedly with a minor change each
  2536. time through. A hacker who is also a teaching assistant might say, "I
  2537. guess I'll IRP over these homework papers and give each a RANDOM
  2538. grade".
  2539.    The word "IRP" is an acronym for "Indefinite RePeat". It is the
  2540. name of a command in the MIDAS assembler, a program that translates
  2541. PDP-10 instructions from a symbolic form to binary bits.
  2542.  
  2543. JEDGAR (jed'g:r)
  2544.    A "counterspy" program. See OUTPUT SPY.
  2545.  
  2546. JFCL (j:-fik':l, jif'k:l) verb.
  2547.    To cancel or annul something. "Why don't you jfcl that out?"
  2548. The PDP-10 has several instructions that don't do anything (remember
  2549. that SKIP means "Do not SKIP", as explained in the entry for AOS).
  2550. However, the fastest do-nothing instruction happens to be JFCL, which
  2551. stands for "Jump if Flag set and the CLear the flag". This does
  2552. something useful, but is a very fast no-operation if no flag is
  2553. specified.
  2554.    If one wants to patch a program by removing one instruction, the
  2555. easiest thing to do is to replace the instruction with one that doesn't
  2556. do anything. Such and instruction is said to have been jfcl'd out. This
  2557. bit of jargon was then extended metaphorically.
  2558.    The license plate on hacker Geoff Goodfellow's BMW is JFCL.
  2559.  
  2560. JIFFY (jif'ee) noun.
  2561.    1. The time unit used by a clock attached to a computer to measure
  2562. CPU time, typically either 1/60 second or (less commonly) one mil-
  2563. lisecond. "The swapper runs every six jiffies" means that the virtual
  2564. memory management routine is executed once for every six ticks of the
  2565. computer's clock, or ten times a second.
  2566.    2. An indeterminate time from a few seconds to forever. "I'll do
  2567. it in a jiffy" means certainly not now and possibly never. This is a
  2568. bit contrary to the more widespread use of the word.
  2569.  
  2570. JOCK noun.
  2571.    A programmer who is characterized by the large and somewhat
  2572. brute-force programs he writes. Brute-force programs typically work by
  2573. enumerating all possible combinations of things in an effort to find
  2574. the one combination that solves the problem. An example of a brute-
  2575. -force program is one that sorts ten thousand numbers by examining them
  2576. all, picking the smallest one, and saving it in another table; then
  2577. examining all the numbers again and picking the smallest on except for
  2578. the one it already picked; and in general choosing the next number by
  2579. examining all ten thousand numbers and choosing the smallest one that
  2580. hasn't yet been picked (as determined by examining all the ones already
  2581. picked.)
  2582.    Yes, the program will produce the right answer, but it will be
  2583. much slower than a program that uses even a modicum of cleverness to
  2584. avoid most of the work. (A little bit of computer science -- spe-
  2585. cifically, the theory of algorithms -- will show that a typical large
  2586. computer such as a PDP-10, using a clever sorting method, can sort ten
  2587. thousand numbers in about eight seconds, while the brute-force method
  2588. outlined above would take about 40 days.)
  2589.  
  2590. J. RANDOM (jay' ran'd:m) adjective.
  2591. Arbitrary; ordinary; any one; "any old". Would you let J.Random LOSER
  2592. marry your daughter?". See RANDOM.
  2593.  
  2594. JRST (jusrt) verb.
  2595.    1. To suddenly change subjects, with no intention of returning to
  2596. the previous topic. Usage: rare and considered silly.
  2597.    2. To jump. "Jack be nimble, Jack be quick, Jack jrst over the
  2598. candle stick". This is even sillier.
  2599.    The PDP-10 JUMP instruction means "Do not jump", as explained in
  2600. the definition of AOS. The JUMPA instruction ("JUMP Always") does jump,
  2601. but it isn't quite so fast as the JRST instruction ("Jump and ReSTore
  2602. flags"). The instruction is used so frequently that the speed matters,
  2603. so all PDP-10 hackers automatically use the faster though more obscure
  2604. JRST instruction.
  2605.  
  2606. KLUGE, KLUDGE (klooj) noun.
  2607.    1. A Rube Goldberg device in hardware of software.
  2608.    2. A clever programming trick intended to solve a particularly
  2609. nasty case in an efficient, if not clear, manner. Often used to repair
  2610. BUGS. Often verges on being a CROCK.
  2611.    3. Something that works for the wrong reason.
  2612.    4. verb. To insert a kluge into a program. "I've kluged this
  2613. routing to get around that weird bug, but there's probably a better
  2614. way". Also "kluge up".
  2615.    5. A feature that is implemented in a RUDE manner.
  2616.    KLUGE AROUND. To avoid (a problem) by inserting a kluge.
  2617.  
  2618. LASER CHICKEN noun.
  2619.    Kung Pao Chicken, a standard Chinese dish containing chicken,
  2620. peanuts, and bell peppers in a spicy pepper-oil sauce. A few hackers
  2621. call it "laser chicken" for two reasons: It can ZAP you just like a
  2622. laser, and the pepper-oil sauce has a red color reminiscent of a laser
  2623. beam.
  2624.  
  2625. LIFE noun.
  2626.    A cellular-automaton game invented by mathematician John Horton
  2627. Conway, and first introduced publicly by Martin Gardner in his column
  2628. "Mathematical Games" (Scientific American", October 1970). Hackers at
  2629. various places contributed to the mathematical analysis of this game,
  2630. notably Bill Gosper at MIT. When a hacker mentions "life", he is much
  2631. more likely to mean this game than the magazine, the breakfast cereal,
  2632. or the human state of existence.
  2633.  
  2634. LINE FEED
  2635.    1. verb. To feed the paper through a terminal by one line (in
  2636. order to print on the next line). On a display terminal, to move the
  2637. cursor down to the next line of the screen.
  2638.    2. noun. The "character" which, when sent to a terminal by the
  2639. computer, causes the terminal to perform this action.
  2640.    This is standard ASCII terminology.
  2641.  
  2642. LINE STARVE
  2643.    1. verb. To feed the paper through the terminal the wrong way by
  2644. one line. (Most terminals can't do this!) On a display terminal, to
  2645. move the cursor up to the previous line of the screen. Example: "To
  2646. print X squared, you just output X, line starve, 2, line feed". (The
  2647. line starve causes the "2" to appear on the line above the "X", and the
  2648. line feed gets back to the original line.)
  2649.    2. noun. A "character" (or character sequence) that causes a
  2650. terminal to perform this action.
  2651.    This is not standard ASCII terminology. Even among hackers it is
  2652. considered a bit silly.
  2653.  
  2654.  
  2655. LOGICAL adjective.
  2656.    Conventional; assumed for the sake of exposition or convenience;
  2657. not the actual thing but in some sense equivalent to it; not ne-
  2658. cessarily corresponding to reality.
  2659.    Example: If a person who had long held a certain post (for
  2660. example, Les Earnest at Stanford) left and was replaced, the re-
  2661. placement would for a while be known as the "logical Les Earnest."
  2662. Pepsi might be referred to as "logical Coke" (or vice versa).
  2663.    At Stanford, "logical" compass directions denote a coordinate
  2664. system in which "logical north" is toward San Francisco, "logical
  2665. south" is toward San Jose, "logical west" is away from the ocean --
  2666. even though logical north varies between physical (true) north near San
  2667. Francisco and physical west near San Jose. The best rule of thumb here
  2668. is that El Camino Real by definition always runs north-and-south. In
  2669. giving directions, one might say, "To get to Rincon Taraco Restaurant,
  2670. get onto EL CAMINO BIGNUM going logical north". Using the word
  2671. "logical" helps to prevent the recipient from worrying about the fact
  2672. that the sun is setting almost directly in front of him as he travels
  2673. "north".
  2674.    A similar situation exists at MIT. Route 128 (famous for the ele-
  2675. ctronics industries that have grown up along it) is a three-quarters
  2676. circle surrounding Boston at a radius of ten miles, terminating at the
  2677. coast line at each end. It would be most precise to describe the two
  2678. directions along this highway as being "clockwise" and "counter-
  2679. clockwise", but the road signs all say "north" and "south", res-
  2680. pectively. A hacker would describe these directions as "logical north"
  2681. and "logical south", to indicate that they are conventional directions
  2682. not corresponding to the usual convention for those words. (If you went
  2683. logical south along the entire length of Route 128, you would start out
  2684. going northwest, curve along to the south, and finish headed due east!)
  2685.    Synonym: VIRTUAL. Antonym: physical.
  2686.    This use is an extension from its technical use in computer
  2687. science. A program can be written to do input or output using a
  2688. "logical device". When the program is run, the user can specify which
  2689. "physical" (actual) device to use for that logical device. For example,
  2690. a program might send all its error messages to a logical device called
  2691. ERROR; the user can then specify whether logical device ERROR should be
  2692. terminal, a disk file, or the NULL DEVICE (to throw the error messages
  2693. away).
  2694.    A speculation is that the word "logical" is used because, even
  2695. though a thing isn't the actual object in question, you can reason
  2696. logically about the thing as if it were the actual object.
  2697.  
  2698. LOSE verb.
  2699.    1. To fail. A program loses when it encounters an exceptional
  2700. condition or fails to work in the expected manner.
  2701.    2. To be exceptionally unaesthetic.
  2702.    3. Of people, to be obnoxious or unusually stupid (as opposed to
  2703. ignorant). See LOSER.
  2704.    DESERVE TO LOSE verb. Said of someone who willfully does THE WRONG
  2705. THING, or uses a feature known to be MARGINAL. What is meant is that
  2706. one deserves the consequences of one's losing actions. "Boy, anyone who
  2707. tries to use UNIX deserves to lose!".
  2708.    LOSE, LOSE interjection. A reply or comment on an undesirable s-
  2709. ituation. Example: "I accidentally deleted all my files!" "Lose, lose".
  2710.  
  2711. LOSER noun.
  2712.    An unexpectedly bad situation, program, programmer, or person.
  2713. Someone who habitually loses (even winners can lose occasionally).
  2714. Someone who knows not and knows not that he knows not.
  2715.    Emphatic forms are "real loser", "total loser", and "complete
  2716. loser" (but not "MOBY loser", which would be a contradiction in terms).
  2717.    LOSS noun. Something (but not a person) that loses: a situation in
  2718. which something is losing. Emphatic forms are "MOBY loss", "total
  2719. loss", "complete loss". (Note that a loss can be moby, even though a
  2720. loser cannot be).
  2721.    WHAT A LOSS! interjection. A remark to the effect that a situation
  2722. is bad. Example: Suppose someone said, "Fred decided to write his
  2723. program in ADA instead of LISP." The reply "What a loss!" comments that
  2724. the choice was bad, or that it will result in an undesirable situation
  2725. -- but may also implicitly recognize that Fred was forced to make that
  2726. decision because of outside influences. On the other hand, the reply
  2727. "What a loser!" is a more general remark about Fred himself, and
  2728. implies that bad consequences will be entirely his fault.
  2729.    LOSSAGE (lowss':j) noun. The stuff of which losses are made. This
  2730. is a collective noun. "What a loss!" and "What a lossage!" are nearly
  2731. synonymous remarks.
  2732.  
  2733. LPT (lip':t) noun.
  2734.    A Line PrinTer. "The LIST command can be used to send a file to
  2735. the lpt".
  2736.  
  2737. LUSER (loo'z:r) noun.
  2738.    A USER who is probably also a LOSER. ("Luser" and "loser" are
  2739. pronounced identically).
  2740.    This word was coined about eight years ago at MIT. When you first
  2741. walk up to a terminal at MIT and type "Control-Z" to get the computer's
  2742. attention, it prints out some status information, including how many
  2743. people are already using the computer. It might print "14 users", for
  2744. example. Someone thought it would be a great joke to patch the SYSTEM
  2745. to print "14 losers" instead. There ensued a great controversy, as some
  2746. of the users didn't particularly want to be called losers to theirs
  2747. faces every time they used the computer. For a while several hackers
  2748. struggled covertly, each changing the message behind the back of the
  2749. others; any time you logged into the computer it was even money whether
  2750. it would say "users" or "losers". Finally, someone tried the compromise
  2751. "lusers", and it stuck. To this day, when you connect to the MIT
  2752. computer, it will say "14 lusers".
  2753.  
  2754. MACROTAPE (mak'roh-tayp) noun.
  2755.    An industry standard reel of magnetic tape, about ten inches in
  2756. diameter, as opposed to MICROTAPE.
  2757.  
  2758. MAGIC adjective.
  2759.    1. As yet unexplained, or too complicated to explain. (Arthur C.
  2760. Clarke once said that any sufficiently advanced technology is
  2761. indistinguishable from magic). "The precise form in which CHARACTERS
  2762. are printed to the terminal is controlled by a number of magic BITS".
  2763. "This routine computes the parity of an eight-bit byte in only three
  2764. instructions".
  2765.    2. Characteristic of something that works though no one really
  2766. understands why.
  2767.    3. Characteristic of a FEATURE not generally publicized which
  2768. allows something otherwise impossible -- or a feature formerly in that
  2769. category but now unveiled. Example: the keyboard commands at Stanford
  2770. that override the screen-hiding features.
  2771.    See AUTOMAGICALLY.
  2772.  
  2773.    (1) When Barbara Steele was pregnant, her doctor had her take a
  2774. sonogram to determine whether she was carrying twins. Now Barbara and I
  2775. had both studied computer science at MIT, and we saw that some complex
  2776. computerized image-processing was involved. We asked the doctor how it
  2777. was done, hoping to learn some details about the mathematics involved
  2778. in the computer program. The doctor simply said, "The probe sends out
  2779. sound waves, which bounce off the internal organs. A microphone picks
  2780. up the echoes, like radar, and sends the signals to a computer -- and
  2781. the computer makes a picture." Thanks a lot! Now a hacker would have
  2782. said, "... and the computer magically makes a picture", implicitly
  2783. acknowledging that he had glossed over an extremely complicated
  2784. process.
  2785.  
  2786.    (2) Some years ago I was snooping around in the cabinets that
  2787. housed the MIT AI lab's PDP-10, and I noticed a little switch glued to
  2788. the frame of on cabinet. It was obviously a homebrew job added by one
  2789. of the lab's hardware hackers (no one knows who).
  2790.    You don't touch an unknown switch on a computer without knowing
  2791. what it does, because you might CRASH it. The switch was labeled in a
  2792. most unhelpful way. It had two positions, and scrawled in pencil on the
  2793. metal switch body were the words "magic" and "more magic". The switch
  2794. was in the "more magic" position.
  2795.    I called another hacker over to look at it. He had never seen the
  2796. switch before, either. Closer examination revealed that the switch only
  2797. had one wire running to it! The other end of the wire did disappear
  2798. into the maze of wires inside the computer, but it's a basic fact of
  2799. electricity that a switch can't do anything unless there are two wires
  2800. connected to it. This switch had a wire connected on one side and no
  2801. wire on its other side.
  2802.    It was clear that this switch was someone's idea of a silly joke.
  2803. Convinced by our reasoning that the switch was inoperative, we flipped
  2804. it. The computer instantly crashed!
  2805.    Imagine our utter astonishment. We wrote it off as coincidence,
  2806. but nevertheless restored the switch to the "more magic" position
  2807. before reviving the computer.
  2808.    A year later, I told this story to yet another hacker -- David
  2809. Moon, as I recall. (See MOON). He clearly doubted my sanity, or
  2810. suspected me of a supernatural belief in the power of this switch, or
  2811. perhaps thought I was fooling him with a BOGUS SAGA. To prove it to
  2812. him, I showed him the very switch, still glued to the cabinet frame
  2813. with only one wire connected to it. It was still in the "more magic"
  2814. position. We scrutinized the switch and its lone connection and found
  2815. that the other end of the wire, though connected to the computer
  2816. wiring, was connected to a ground pin. That clearly made the switch
  2817. doubly useless: not only was it electrically nonoperative, but it was
  2818. connected to a place that couldn't affect anything anyway. So we
  2819. flipped the switch.
  2820.    The computer promptly crashed.
  2821.    This time we ran for Richard Greenblatt, a long-time MIT hacker
  2822. who was close at hand. He had never noticed the switch before, either.
  2823. He inspected it, concluded it was useless, got some diagonal cutters
  2824. and DIKED IT OUT. We then revived the computer, and it has run fine
  2825. ever since.
  2826.    We still don't know how the switch crashed the machine. There is a
  2827. theory that some circuit near the ground pin was MARGINAL, and flipping
  2828. the switch changed the electrical capacitance enough to upset the
  2829. circuit as millionth-of-a-second pulses went through it. But we'll
  2830. never know for sure. All we can really say is that the switch was
  2831. magic.
  2832.    I still have that switch in my basement. Maybe I'm silly, but I
  2833. usually keep it set on "more magic".
  2834.  
  2835. MARGINAL adjective.
  2836.    1. Extremely small. "A marginal increase in memory can decrease GC
  2837. time drastically". (In everyday terms, this means that it's a lot
  2838. easier to clean off your desk if you have a spare place to put some of
  2839. the junk while you sort through it). See EPSILON.
  2840.    2. Of extremely small merit. "This proposed new FEATURE seems
  2841. rather marginal to me".
  2842.    3. Of extremely small probability of WINNING; on the edge of
  2843. LOSING. "The power supply was rather marginal anyway; no wonder it
  2844. FRIED".
  2845.    MARGINALLY adverb. Slightly, somewhat. "The RAVS (raviolis) here
  2846. are only marginally better than at Small Eating Place".
  2847.    MARGINAL HACKS noun. Margaret Jacks Hall, a building into which
  2848. the Stanford Computer Science Department was recently moved.
  2849.  
  2850. MESH noun.
  2851.    The character "#" (number sign).
  2852.    Synonyms: CRUNCH, SPLAT. See CHARACTERS.
  2853.  
  2854. MICROTAPE (miek'roh-tayp) noun.
  2855.    A DECtape, as opposed to a MACROTAPE. A DECtape is a small reel of
  2856. magnetic tape about four inches in diameter and an inch wide. Unlike
  2857. standard magnetic tapes, microtapes allow "random access" to the data.
  2858. In their heyday they were used in pretty much the same ways one would
  2859. now use a floppy disk: as a small, portable way to save and transport
  2860. files and programs, Apparently the term "microtape" was actually the
  2861. official term used within DEC for these tapes until someone CONSED UP
  2862. the word "DECtape", which of course has more commercial appeal.
  2863.  
  2864. MISFEATURE noun.
  2865.    A FEATURE that eventually clobbers someone, possibly because it is
  2866. not adequate for a new situation that has evolved. It is not the same
  2867. as a BUG because fixing it involves a gross philosophical change to the
  2868. system's structure. A misfeature is different from a simple and
  2869. unforeseen side effect. The term implies that the misfeature was
  2870. carefully planned, but that not all the consequences or circumstances
  2871. were predicted accurately. Often a feature becomes a misfeature because
  2872. a trade-off is made.
  2873.    Example: "Well, yeah, it's kind of a misfeature that file names
  2874. are limited to six characters. That decision was made N years ago to
  2875. simplify the file access software and save space on the disk, and now
  2876. we're stuck with it."
  2877.  
  2878. MOBY (moh'bee)
  2879.    1. adjective. Large, immense, complex, impressive. Examples: "A
  2880. Saturn V rocket is a truly moby FROB". (This example is oxymoronic --
  2881. frobs are normally not very large.) "Some MIT undergrads pulled off a
  2882. moby HACK at the Harvard-Yale game."
  2883.    2. noun. The total size of a computer's address space, that is,
  2884. the amount of memory that a given computer can access. Examples: For a
  2885. PDP-10, a moby is 262144 36-bit words; for a PDP-8, it is 4096 12-bit
  2886. words; for a 68000 or a VAX, it is 4294967296 8-bit bytes. This term is
  2887. useful because when a computer has "virtual memory mapping", a computer
  2888. may have more physical memory attached to it than any one program can
  2889. access directly. One can then say, "This computer has six mobies" to
  2890. mean that the ration of physical memory to address space is six --
  2891. without having to say specifically how much memory there actually is.
  2892.    That in turn implies that the computer can time-share six
  2893. "full-sized" programs without having to swap programs between memory
  2894. and disk. If a computer has exactly two mobies, then the one with
  2895. smaller (physical) addresses is called the "low moby" and the other one
  2896. is called the "high moby". Example: "Response times will be long today.
  2897. The high moby just FRIED, so we're limping along with only half our
  2898. memory".
  2899.    3. noun. 256K 36-bit words, which is the size of a moby on every
  2900. hacker's favorite computer, the PDP-10. This amount is sufficiently
  2901. close to a megabyte (one million bytes) that sometimes the term "moby"
  2902. and "megabyte" are used interchangeably.
  2903.    4. adjective. An honorific term of address (never of third-person
  2904. reference) usually used to show admiration, respect, and/or
  2905. friendliness to a competent hacker. Example: "So, moby Knight, how's
  2906. the CONS machine doing?" (Tom Knight was one of the designers of MIT's
  2907. LISP Machine, a personal computer designed to run LISP. The prototype
  2908. was called "CONS".)
  2909.    5. adjective. In backgammon, doubles on the dice, as in "moby
  2910. sixes", "moby threes", "moby ones", etc. Compare this with BIGNUMS:
  2911. Double sixes are both bignums and moby sixes, but moby ones are not
  2912. bignums. (The use of term "moby" to describe double ones is sarcastic).
  2913.    MOBY FOO, MOBY LOSS, MOBY HACK, MOBY WIN. These are standard
  2914. emphatic forms.
  2915.  
  2916. MODE noun.
  2917.    A general state, usually used with an adjective or noun describing
  2918. the state. Use of the word "mode" rather that "STATE" implies that the
  2919. state is extended over time, and probably also that some activity
  2920. characteristic of that state is being carried out. Examples: "No time
  2921. to HACK; I'm in these mode". "I'll be in vacation mode next week". "My
  2922. editor is stuck in some weird mode where every CHARACTER I type appears
  2923. twice on the screen". "The E editor normally uses a display terminal,
  2924. but if you're on a TTY it will switch to nondisplay mode".
  2925.    This term is normally used in a technical sense to describe the
  2926. state of a program. Extended usage -- for example, to describe people
  2927. -- is definitely slang.
  2928.    See DAY MODE, NIGHT MODE, and YOYO MODE; also COM MODE, TALK MODE,
  2929. and GABRIEL MODE.
  2930.  
  2931. MODULO (mahd'yoo-loh) preposition.
  2932.    Except for. This is from mathematical terminology. One writes "4=2
  2933. mod 9" to mean that 4 and 22 give the same remainder when divided by 9
  2934. (the precise meaning is a bit more complicated, but that's the idea).
  2935. One might say that 4 equals 22 "except for some 9's", because if you
  2936. add two 9's to 4 you get 22. Examples: "Well, LISP seems to work okay
  2937. now, modulo that GC BUG". "I feel fine today modulo a slight headache".
  2938.  
  2939. MOON noun.
  2940.    1. A celestial object whose phase is very important to hackers.
  2941. See PHASE OF THE MOON.
  2942.    2. The login name of MIT hacker David A. Moon. Because he hacks
  2943. important system software, his PHASE may also be very important to
  2944. hackers.
  2945.  
  2946. MUMBLAGE (muhm'bl:j) noun.
  2947.    The topic of one's mumbling. (See MUMBLE). "All that mumblage" is
  2948. used like "all that stuff" when it is not quite clear what it is or how
  2949. it works, or like "all that crap" when "mumble" is being used as an
  2950. implicit replacement for obscenities.
  2951.  
  2952. MUMBLE interjection.
  2953.    1. Said when the correct response is too complicated to enunciate
  2954. or the speaker has not thought it out. Often prefaces a longer answer,
  2955. or indicates a general reluctance to get into a big long discussion.
  2956. Example: "Don't you think that we could improve LISP performance by
  2957. using a hybrid reference-count transaction garbage collector, if the
  2958. cache is big enough and there are some extra cache BITS for the
  2959. microcode to use?" "Well, mumble... I'll have to think about it".
  2960.    2. Sometimes used as an expression of disagreement. "I think we
  2961. should buy a VAX". "Mumble!". Common variant: Mumble frotz. (See FROTZ)
  2962.    3. Yet another metasyntactic variable like FOO.
  2963.  
  2964. MUNCH verb.
  2965.    To transform information in a serial fashion, often requiring
  2966. large amounts of computation. To trace down a data structure.
  2967.    Synonyms: CRUNCH, GROVEL. "Munch" connotes somewhat less paint
  2968. than the other two words.
  2969.  
  2970. MUNCHING SQUARES noun.
  2971.    A display HACK dating back to the PDP-11 (early 1960s) at MIT,
  2972. which employs a trivial computation (involving XOR'ing of x-y display
  2973. coordinates, described in items 146-148 of HAKMEM) to produce an
  2974. impressive display of moving, growing, and shrinking squares. The hack
  2975. usually has a parameter (usually taken from toggle switches) which,
  2976. when well chosen, can produce amazing effects. Some of these,
  2977. discovered recently on the LISP machine, have been christened "munching
  2978. triangles", "munching w's" and "munching mazes". More generally,
  2979. suppose a graphics program produces an impressive and everchanging
  2980. display of some basic form FOO on a display terminal, and does it using
  2981. a relatively simple program; then the program (or the resulting
  2982. display) is likely to be referred to as "munching foos". [By the way,
  2983. note the use of the word foo as a metasyntactic variable in the last
  2984. sentence.]
  2985.  
  2986. MUNG (muhng) verb.
  2987.    1. To make changes to a file, often large-scale, usually ir-
  2988. revocable, occasionally accidental.
  2989.    2. To destroy, usually accidentally, occasionally maliciously.
  2990. Note that the SYSTEM only mungs things maliciously (this is a con-
  2991. sequence of Murphy's Law).
  2992.    3. The kind of beans of which the sprouts are used in Chinese
  2993. food. (That's their real name! Mung beans! Really!)
  2994.    This word is said to be a recursive acronym: MUNG means Mung Until
  2995. No Good.
  2996.    MUNGE (muhnj) verb. Variant of MUNG.
  2997.  
  2998. N (en) noun.
  2999.    1. Some large and indeterminate number. "There were N bugs in that
  3000. crock!".
  3001.    2. An arbitrarily large (and perhaps infinite) number.
  3002.    3. A variable whose value is specified by the current context. For
  3003. example: When ordering a meal at a restaurant, "N" may refer to however
  3004. many people there are at the table. From the remark "We'd like to order
  3005. N wonton soups and a family dinner for N minus one", you can deduce
  3006. that one person at the table wants to eat only soup, even though you
  3007. don't know how many people there are. A silly riddle: "How many
  3008. computers does it take to shift the bits in a register?" "N+1: N to
  3009. hold all the bits still, and one to shove the register over."
  3010.    NTH (enth) adjective. The ordinal counterpart of N. "Now, for the
  3011. Nth and last time..." In the specific context "Nth-year  graduate
  3012. student", N is generally assumed to be at least 4, and is usually 5 or
  3013. more.
  3014.    See also 69.
  3015.  
  3016. NIGHT MODE noun.
  3017.    The state a person is in when he is working at night and sleeping
  3018. during the day. (The advantage of being in night mode is that the
  3019. computers are usually overloaded during the day; at night more CYCLES
  3020. are available).
  3021.    See PHASE and DAY MODE.
  3022.  
  3023. NIL (nil)
  3024.    No. This word is used in reply to a question, particularly one
  3025. asked using the "-P" convention. Example: "Foodp?" "Nil". That simple
  3026. interchange means "Do you want to come eat with us?" "No, thanks". See
  3027. T. (In the LISP language, the name "nil" means "false", among other
  3028. things).
  3029.  
  3030. NULL DEVICE noun.
  3031.    An input/output device that doesn't do anything. A card reader
  3032. reads cards, and a terminal keyboard reads the characters typed on the
  3033. keyboard, but reading from the null device always yields zeros.
  3034. Similarly, writing to a printer produces words on paper, but writing to
  3035. the null device just throws the output into the BIT BUCKET.
  3036.    There is no such physical thing as a null device -- it would be
  3037. pointless to build one -- but it is a useful notion that is provided
  3038. LOGICALLY by many operating systems. If a program normally prints out a
  3039. lot of information and you don't happen to want to see it, you simply
  3040. direct the program to send the output to the null device. The program
  3041. is satisfied because the output is AUTOMAGICALLY discarded without
  3042. wasting paper.
  3043.  
  3044. NXM (niks':m)
  3045.    A lapse of memory; a GLITCH. This phrase is an acronym for
  3046. "NoneXistent Memory", the result of accessing a computer's memory at an
  3047. address for which no memory has been connected. A NXM is technically a
  3048. special case of an ILL MEM REF, but in slang usage they are practically
  3049. synonymous.
  3050.  
  3051. OBSCURE adjective.
  3052.    Little-known; incomprehensible; undocumented. This word is used,
  3053. in an exaggeration of its normal meaning, to imply a total lack of
  3054. comprehensibility. "The reason for that last CRASH is obscure". "That
  3055. program has a very obscure command syntax". "This KLUDGE works by
  3056. taking advantage of an obscure FEATURE in TECO". The phrase "moderately
  3057. obscure" implies that it could be figured out but probably isn't worth
  3058. the trouble.
  3059.  
  3060. OPEN noun.
  3061.    A left parenthesis, "(". This word is used as shorthand to
  3062. eliminate ambiguity when communicating a sequence of characters
  3063. vocally. To read aloud the LISP program "DEFUN FOO (X) (PLUS X 1))",
  3064. which takes an arguments X and adds 1 to it, one might say: "Open
  3065. def-fun foo. Open eks close. Open, plus eks one, close, close." See
  3066. CLOSE.
  3067.    OPEN BRACKET noun. The character "[".
  3068.    OPEN BRACE noun. The character "{".
  3069.  
  3070. OUTPUT SPY noun.
  3071.    On the MIT system there is a program that allows you to see what
  3072. is being printed on someone else's terminal. It works by "spying" on
  3073. the other guy's output, by examining the insides of the monitor system.
  3074. It can do this because the MIT system purposely has very little in the
  3075. way of "protection" that prevents one user from interfering with
  3076. another. Fair is fair, however. There is another program that will
  3077. automatically notify you if anyone starts to spy on your output. It
  3078. works in exactly the same way, by looking at the insides that have to
  3079. do with you output. This "counterspy" program is called JEDGAR
  3080. (pronounced as two syllables: jed'gar), in honor of the former head of
  3081. the FBI.
  3082.    By the way, the output spy program is called "os" (oh'ess').
  3083. Throughout the rest of computer science, and also at IBM, "OS" means
  3084. "operating system", but among MIT hackers it almost always means
  3085. "output spy".
  3086.  
  3087. PARSE verb.
  3088.    1. To determine the syntactic structure of a sentence or other
  3089. utterance. (This is close to the standard English meaning). Example:
  3090. "That was the one I saw you". "I can't parse that".
  3091.    2. More generally, to understand or comprehend. "It's very simple.
  3092. You just kretch the glims and then AOS the zotz" "I can't parse that".
  3093.    3. Of fish, to have to remove the bones yourself (usually at a
  3094. Chinese restaurant). "I object to parsing fish" means "I don't want to
  3095. get a whole fish, but a sliced one is okay". A "parsed fish" has been
  3096. de-boned. There is some controversy whether "unparsed" should mean
  3097. "bony", or also mean "deboned".
  3098.    This term is derived from the technical use of the word in
  3099. linguistics. Hackers know about it because some researchers in
  3100. artificial intelligence work on the problem of writing computer
  3101. programs that can understand and/or speak human languages.
  3102.  
  3103. PATCH
  3104.    1. noun. A temporary addition to a piece of code, usually as a
  3105. quick-and-dirty remedy to an existing BUG or MISFEATURE. A patch may or
  3106. may not work, and may of may not eventually be incorporated permanently
  3107. into the program.
  3108.    2. verb. To fix something temporarily; to insert a patch into a
  3109. piece of code. See KLUGE AROUND.
  3110.  
  3111. PDL (pid':l, pud':l) [acronym for Push Down List] noun.
  3112.    1. A last-in/first-out (LIFO) queue, also known as a "stack" in
  3113. computer science; more loosely, any ordered list of things. Even more
  3114. loosely, any set of things. A person's "pdl" is the set of things he
  3115. has to do in the future. One speaks of the next project to be attacked
  3116. as having "risen to the top of the pdl" (or the top of the stack).
  3117.    Examples: "I'm afraid I've got real work to do, so this HACK will
  3118. have to be pushed way down on my pdl." "I haven't done it yet because
  3119. every time I POP my pdl something new gets PUSHED". If you are
  3120. interrupted several times in the middle of a conversation, "my pdl
  3121. overflowed" means "I forget what we were talking about originally".
  3122. (The implication is that too many items were pushed onto the pdl than
  3123. could be remembered, and so the least recent items were lost.) See PUSH
  3124. and POP.
  3125.    OVERFLOW PDL noun. The place where you put things when your pdl is
  3126. full. If you don't have one and too many things get pushed, you gorget
  3127. something. The overflow pdl for a person's memory might be a memo pad.
  3128.  
  3129.    Hey, diddle, diddle
  3130.    The overflow pdl
  3131.       To get a little more stack;
  3132.    If that's not enough
  3133.    Then you lose it all,
  3134.       And have to pop all the way back.
  3135.  
  3136.          -- The Great QUUX
  3137.  
  3138.    The term "pdl" is an acronym for Push Down List, and in its
  3139. technical sense rather than its slang meaning always means a stack. The
  3140. best example of a stack is to be found in a cafeteria: a pile of plates
  3141. sitting on a spring in a well in a cart, so that when you put a plate
  3142. on the top they all sink down; and when you take one off the top the
  3143. rest spring up a bit.
  3144.  
  3145. PESSIMAL adjective.
  3146.    Maximally bad. "This is a pessimal situation".
  3147.    PESSIMIZE verb. To make as bad as possible.
  3148.    PESSIMIZING COMPILER noun. A compiler that produces object code
  3149. that is worse than the straightforward or obvious translation. (The
  3150. implication is that the compiler is actually trying to optimize the
  3151. program, but through stupidity is doing the opposite. A few pessimizing
  3152. compilers have been written on purpose, as pranks).
  3153.    These words are the obvious Latin-based antonyms for "optimal" and
  3154. "optimize", but for some reason they do not appear in most English
  3155. dictionaries -- although "pessimize" is listed in the Oxford English
  3156. Dictionary.
  3157.  
  3158. PHANTOM noun.
  3159.    At Stanford, the term "phantom" is used to mean a DRAGON.
  3160.  
  3161. PHASE noun.
  3162.    The offset of one's waking-sleeping schedule with respect to the
  3163. standard 24-hour cycle. This is a useful concept among people who often
  3164. work at night according to no fixed schedule. Examples: "What's your
  3165. phase?" "I've been getting in about eight P.M. lately, but I'm going to
  3166. phase around to the day schedule by Friday". A person who is roughly 12
  3167. hours out of phase is sometimes said to be in NIGHT MODE. (The term DAY
  3168. MODE is also, but less frequently, used, meaning you're working 9 to 5
  3169. -- or, more likely, 10 to 6.)
  3170.  
  3171.    It is not uncommon to change one's phase by as much as six hours
  3172. per day on a regular basis. For example, one can stay awake for twenty
  3173. hours and then sleep for ten. This can be a bit of a strain on the
  3174. metabolism when done for extended periods, however. One nice
  3175. phase-changing schedule is to keep a 28-hour day: stay awake 18 hours
  3176. and sleep for ten, for example. Six 28-hour days are equal to seven
  3177. 24-hour days, so this schedule means you can be in day mode on weekends
  3178. and in night mode (or close to it) for most weekdays that way you get
  3179. lots of CYCLES by being awake at night, and yet are reasonably
  3180. synchronized with the REAL WORLD on weekends.
  3181.    CHANGE PHASE THE HARD WAY. To stay awake for a very long time in
  3182. order to get into a different phase.
  3183.    CHANGE PHASE THE EASY WAY. To stay asleep for a very long time in
  3184. order to get into a different phase.
  3185.    The phenomenon of "jet lag" that afflicts travelers who cross many
  3186. time-zone boundaries may be attributed to two distinct causes: the
  3187. strain of travel per se, and the strain of changing phase. Hackers who
  3188. suddenly find that they must change phase drastically in a short period
  3189. of time, particularly the hard way, experience something like jet lag
  3190. without traveling.
  3191.  
  3192. PHASE OF THE MOON noun.
  3193.    A random parameter on which something is (humorously) said to
  3194. depend. Something that depends on the phase of the moon is at best
  3195. unpredictable, at worst unreliable. (Maybe it is predictable, but
  3196. figuring it out is so complicated it isn't worth it.) Example: "Whether
  3197. the editor will save your file automatically when you exit depends on
  3198. the phase of the moon".
  3199.    The "phase of the moon" is one example of RANDOMNESS.
  3200.    Once a program written by Gerald Sussman (professor of electrical
  3201. engineering at MIT) and Guy Steele had a BUG that really did depend on
  3202. the phase of the moon! There is a little subroutine that has
  3203. traditionally been used in various programs at MIT to calculate an
  3204. approximation to the moon's true phase; the phase is the printed out --
  3205. at the top of program listings, for example -- along with the date and
  3206. time, purely for fun. (Actually, since hackers spend most of their time
  3207. indoors, this might be the only way they would ever know what the
  3208. moon's phase was!) Steele incorporated this routine into a LISP program
  3209. that, when it wrote out a file, would print a 'timestamp' at the top
  3210. that looked something like this:
  3211.  
  3212. ; THE MOON IS 1 DAY, 20 HOURS, 42 MINUTES, AND 54 SECONDS
  3213. ;  PAST THE FIRST QUARTER.
  3214. ; THE SUN IS 41*44'1" NORTH OF EAST,
  3215. ;  35*7'26" BELOW THE HORIZON.
  3216. ; THAT MEANS IT IS NOW 2:21 AM
  3217. ;  ON WEDNESDAY, MARCH 23, 1983.
  3218.  
  3219.    (A calculation of the position of the sun was also included for
  3220. additional HACK VALUE. The asterisk was used in lieu of a "degrees"
  3221. symbol to indicate angles). Occasionally the first line of the message
  3222. would be too long and would overflow onto the next line like this:
  3223.  
  3224. ; THE MOON IS 2 DAYS, 17 HOURS, 20 MINUTES, AND 45 SECONDS
  3225. ;  PAST THE FIRST QUARTER.
  3226. ; THE SUN IS 17*17'46" WEST OF NORTH,
  3227. ;  44*56'42" BELOW THE HORIZON.
  3228. ; THAT MEANS IT IS NOW 10:59 PM
  3229. ;  ON WEDNESDAY, MARCH 23, 1983.
  3230.  
  3231.    When the file was later read back, the program would BARF. The
  3232. length of the first line depended on the precise time when the
  3233. timestamp was printed, and so the bug literally depended on the phase
  3234. of the moon!
  3235.    POM (pee-oh-em, pahm) noun. An abbreviation for PHASE OF THE MOON.
  3236. This is usually used in the phrase "POM-dependent", meaning FLAKEY.
  3237.  
  3238. POP verb.
  3239.    1. To remove something from a stack or PDL. If a person says he
  3240. has popped something from his pdl, he means he has finally finished
  3241. working on it and can now remove it from the list of things hanging
  3242. over his head.
  3243.    2. To return from a digression. The term "popj" (pop'jay) is also
  3244. used in this sense. "Popj?" as a simple request means "Have we finished
  3245. with this digression? Shall we return to the previous subject of
  3246. conversation?". "Popj!" has more the force of "Stop FLAMING about that,
  3247. you LOSER! Let's return to the main point." "Popj, popj" means roughly
  3248. "Now let's see, where were we?"
  3249.    Synonyms: CONTROL-P.
  3250.    Antonyms: PUSH, PUSHJ.
  3251.    The PDP-10 has instructions named POP and POPJ; the former pops a
  3252. single word from a stack, and the latter (POP and Jump always) is a
  3253. subroutine return instruction.
  3254.  
  3255. PPN (pip':n)
  3256.    1. A combination of a "project identifier" and "programmer name",
  3257. used to identify a specific file directory belonging to that pro-
  3258. grammer. This is used in the TOPS-10 operating system that DEC provides
  3259. for the PDP-10. The implicit assumption is that there will be many
  3260. projects, each with several programmers working on it, and that a
  3261. programmer may work on several projects. This is not a bad orga-
  3262. nization; what is totally BOGUS is that projects and programmers are
  3263. identified by octal (base eight) numbers! Hence the term Project-
  3264. -Programmer Number, or PPN. If I were programmer 72534 and wanted to
  3265. work on project 306, I would have to tell the computer
  3266. "login 306,72534". This is totally ridiculous. At CMU the TOPS-10
  3267. system was modified to be somewhat less ridiculous. Projects are
  3268. identified by a letter and three decimal (not octal) digits, and a
  3269. programmer is identified by his two initials, a digit indicating the
  3270. first year he came to CMU, and a fourth character that is used to
  3271. distinguish between, say, Fred Loser and Farlay Luser who both happened
  3272. to arrive the same year. So to use the PDP-10 at CMU one might say
  3273. "login A780GS70". The programmer name "GS70" is also called a "man
  3274. number" at CMU, even though it isn't really a number. At Stanford,
  3275. projects and programmers are identified by three letters or digits
  3276. each. To work on a LISP project at Stanford, I might log in as: "login
  3277. lsp, gls". This is much more mnemonic. Programmer identifiers at
  3278. Stanford are usually the programmers's initials, though sometimes they
  3279. are nicknames or other three-letter sequences. Even though sometimes
  3280. the CMU and Stanford forms are not really (pairs of) numbers, the term
  3281. "ppn" is used to refer to the combination.
  3282.    2. At Stanford, the term "ppn" is often used loosely to refer to
  3283. the programmer name alone. "I want to send you some mail. What's your
  3284. ppn?".
  3285.    MIT uses an operating system called ITS that is completely
  3286. unrelated to TOPS-10. ITS does not use PPN's. The closest approximation
  3287. to a ppn on ITS is UNAME (user name), which is a six-character
  3288. programmer name with no project number.
  3289.    The names JRN and JRL are sometimes used as example names when
  3290. discussing ppn's; they are understood to be programmer names for
  3291. (fictious) programmers named "J. Random Nerd", and "J. Random Loser".
  3292. (See J. RANDOM). For example, one might say "To log in, type log one
  3293. comma jay are en" (that is, "log 1,JRN"). And the listener will
  3294. understand that he should use his own programmer name in place of JRN.
  3295.  
  3296. PROTOCOL
  3297.    See DO PROTOCOL.
  3298.  
  3299. PSEUDOPRIME (soo'doh-priem) noun.
  3300.    A backgammon prime (six consecutive occupied points) with one
  3301. point missing; that is, only five out of six consecutive points are
  3302. really occupied.
  3303.    This term is a pun. In mathematics, a pseudoprime is an integer
  3304. that satisfies one of a set of criteria. Any number that passes even
  3305. one of these tests is almost certainly a true prime (an integer that
  3306. cannot be divided evenly by any integer except itself or 1); however,
  3307. there are a very few integers that can fool the tests, so the best you
  3308. can say is that a number that passes the test is "probably" prime. The
  3309. hacker backgammon usage stems from the idea that a pseudoprime is
  3310. almost as good as a prime: it does the job of a prime for most purposes
  3311. until proven otherwise, and that probably won't happen. A true
  3312. backgammon prime guarantees that your opponent cannot escape; a
  3313. backgammon pseudoprime will probably prevent the opponent from
  3314. escaping.
  3315.  
  3316. PUNT verb.
  3317.    To give up; to decide not to do. Typically there is no intention
  3318. of trying again later. Examples: "Let's punt the movie tonight". "I was
  3319. going to HACK all night to get this FEATURE in, but I decided to punt"
  3320. may mean that you've decided not to stay up all night, and may also
  3321. mean you're not ever even going to put in the feature.
  3322.    This doubtless comes from football: When you punt, you give up the
  3323. offense.
  3324.  
  3325. PUSH verb.
  3326.    1. To put something onto a stack or PDL. If a person says
  3327. something has been pushed onto his pdl, he means yet another thing has
  3328. been added to the list of things hanging over his head for him to do.
  3329.    2. To enter upon a digression; to save the current discussion for
  3330. later. The term PUSHJ (push'jay) is also used in this sense. "Pushj?"
  3331. means "May I interrupt for a moment?".
  3332.    Antonyms: POP, POPJ.
  3333.    Synonym: CONTROL-B.
  3334.    The PDP-10 has instructions named PUSH and PUSHJ; the former
  3335. pushes a single word onto a stack, and the latter (PUSH and Jump
  3336. always) is a subroutine call instruction.
  3337.  
  3338. QUADRUPLE BUCKY adjective.
  3339.    1. Using all four of the shifting keys "control", "meta", "hyper",
  3340. and "super" while typing a character key (on an MIT keyboard that has
  3341. all these keys). This combination is very seldom used in practice,
  3342. because when you invent a new command you usually assign it to some
  3343. character that is easier to type than using all four shift keys. If you
  3344. want to imply that a program has ridiculously many commands or
  3345. features, you can say something like "Oh, the command that makes it
  3346. spin all the tapes while whistling Beethoven's Fifth Symphony is
  3347. quadruple bucky COKEBOTTLE".
  3348.    2. Using four shift keys while typing a fifth character, where the
  3349. four shift keys are the "control", and "meta" keys on both sides of the
  3350. (MIT or Stanford) keyboard. This is very difficult to do! One accepted
  3351. technique is to press the left-control and left-meta keys with your
  3352. left hand, the right-control and right-meta with your right hand, and
  3353. the fifth key with your nose. Such hard-to-type commands are used for
  3354. things that you want to be very sure can't happen accidentally, such as
  3355. throwing away your entire program and starting all over.
  3356.    For a complete explanation, see BUCKY BITS.
  3357.  
  3358. QUES (kwess)
  3359.    1. noun. The question mark character ("?").
  3360.    2. interjection. What? Also Ques, Ques? See WALL.
  3361.  
  3362. QUUX (kwuhks)
  3363.    Originally, a meta-word like FOO. This word was coined by Guy
  3364. Steele for precisely this purpose when he was young and naive and not
  3365. yet interacting with the real hacker community. Had he known that "foo"
  3366. was the standard, he would not have bothered. Many people invent such
  3367. silly words; this one seems simply to have been lucky enough to have
  3368. spread a little. In an eloquent display of poetic justice, it has
  3369. returned to the originator in the form of a nickname as punishment for
  3370. inventing this BLETCHEROUS word in the first place.
  3371.    QUUXY (kwuhks'ee) adjective. Of or pertaining to a QUUX.
  3372.  
  3373. RANDOM
  3374.    1. adjective. Unpredictable (closest to mathematical definition);
  3375. weird. "The SYSTEM's been behaving pretty randomly".
  3376.    2. Assorted; various; undistinguished; uninteresting. "Who was at
  3377. the conference?" "Just a bunch of random business types".
  3378.    3. Frivolous; unproductive; undirected. "He's just a random
  3379. LOSER".
  3380.    4. Incoherent or inelegant; not well organized. "The program has a
  3381. random set of MISFEATURES". "That's a random name for that function".
  3382. "Well, all the names were chosen pretty randomly".
  3383.    5. Gratuitously wrong; poorly done and for no good apparent
  3384. reason. "This subroutine randomly uses six registers where two would
  3385. have sufficed".
  3386.    6. In no particular order, though deterministic. "The I/O channels
  3387. are in a pool, and when a file is opened one is chosen randomly".
  3388.    7. noun. A random hacker. This is used particularly of high school
  3389. students who soak up computer time and generally get in the way. The
  3390. term "high school random" is frequently heard.
  3391.    8. One who lives at Random Hall at MIT.
  3392.    J. RANDOM is often prefixed to a noun to make a "name" out of it
  3393. (by analogy to common names such as "J. Fred Muggs"). It means roughly
  3394. "some particular" or "any specific one". The most common uses are "J.
  3395. Random Loser" and "J. Random Nerd". Example: "Should J. Random Loser be
  3396. allowed to delete system files without warning?"
  3397.  
  3398. RANDOMNESS noun.
  3399.    1. An unexplainable MISFEATURE; gratuitous inelegance or in-
  3400. consistency; failure to so THE RIGHT THING.
  3401.    2. A HACK or CROCK that depends on a complex combination of
  3402. coincidences; also, the combination upon which the hack or crock
  3403. depends for its accidental failure to malfunction; a situation in which
  3404. several BUGS or MISFEATURES happen to cancel each other.
  3405.    See also PHASE OF THE MOON.
  3406.  
  3407. RAPE verb.
  3408.    To (metaphorically) screw someone or something, violently; in
  3409. particular, to destroy a program or information irrecoverably.
  3410. This term is usually used in describing damage to the file system (that
  3411. portion of the computer system responsible for keeping track of all
  3412. files and maintaining their integrity). Example: "Some LOSER ran a
  3413. program that did direct output to the disk instead of going through the
  3414. file system and ended up raping the master directory".
  3415.  
  3416. RAV (rav) noun.
  3417.    A Chinese appetizer known variously in the plural as Peking
  3418. ravioli, dumplings, and potstickers. The term "rav" is short for
  3419. "ravioli", which among hackers always means the Chinese kind rather
  3420. than the Italian kind. Both consist of a filling in a pasta shell, but
  3421. the Chinese kind uses a thinner pasta and is cooked differently, either
  3422. by steaming or frying. A rav or dumpling can be steamed or fried, but a
  3423. potsticker is always the fried kind (so called because it sticks to the
  3424. frying pot and has to be scraped off). "Let's get hot-and-sour soup and
  3425. three orders of ravs".
  3426.  
  3427. RAVE verb.
  3428.    1. To persist in discussing a specific subject.
  3429.    2. To speak authoritatively on a subject about which one knows
  3430. very little.
  3431.    3. To complain (loud and long) to a person who is not in a
  3432. position to correct the difficulty.
  3433.    4. To purposely annoy another person verbally.
  3434.    5. To proselytize (in a loose or metaphorical sense).
  3435.    Synonym: FLAME.
  3436.    This term was imported from WPI. It differs slightly from "flame"
  3437. in that "rave" implies that it is the manner or persistence of speaking
  3438. that is annoying, while "flame" implies somewhat more strongly that the
  3439. subject matter is annoying as well.
  3440.  
  3441. REAL USER noun.
  3442.    1. A commercial user; one who is paying "real" money for his
  3443. computer usage.
  3444.    2. A nonhacker; someone using the system for an explicit purpose
  3445. (such as a research project, or academic course-work). See USER.
  3446.    It is possible for one person to play different roles at different
  3447. times. This is especially true of hackers who are also students. "I
  3448. need this fixed so I can do a problem set. I'm not complaining out of
  3449. RANDOMNESS, but as a real user".
  3450.  
  3451. REAL WORLD, THE noun.
  3452.    1. Those institutions at which people might use the word "pro-
  3453. gramming" in the same sentence as "FORTRAN", "COBOL", "RPG", "IBM",
  3454. etc.
  3455.    2. Places where programs do such commercially necessary but
  3456. intellectually uninspiring things as compute payroll checks and
  3457. invoices.
  3458.    3. To programmers (especially hackers), the location of non-
  3459. -programmers and activities not related to programming.
  3460.    4. A universe in which the standard dress is shirt and tie, and in
  3461. which a person's working hours are defined as 9 to 5.
  3462.    5. The location of the status quo.
  3463.    6. Anywhere outside a university. Example: "Poor fellow, he's left
  3464. MIT and gone into the real world".
  3465.    This term is used pejoratively by those not in residence there. In
  3466. conversation, talking of someone who has entered the real world is not
  3467. unlike talking about a deceased person.
  3468.  
  3469. RIGHT THING, THE noun.
  3470.    That which is "obviously" the correct or appropriate thing to use,
  3471. do, say, etc. Use of this term often implies that in fact reasonable
  3472. people may disagree. Examples: "Never let your conscience keep you from
  3473. doing the right thing!" "What's the right thing for LISP to do when
  3474. computing a mod 0? Should it return a, or give a divide-by-zero
  3475. error?".
  3476.  
  3477. RPG (ahr'pee'jee) noun.
  3478.    1. Report Program Generator, an extremely RUDE, BOGUS, and
  3479. BLETCHEROUS programming language.
  3480.    2. Richard P. Gabriel, a hacker at Stanford. See GABRIEL.
  3481.  
  3482. RUDE adjective.
  3483.    1. Badly written (said of programs).
  3484.    2. Functionally poor, such as a program that is very difficult to
  3485. use because of gratuitously poor (RANDOM?) design decisions.
  3486.    Antonym: CUSPY.
  3487.  
  3488. SACRED adjective.
  3489.    Reserved for the exclusive use of something (this is a me-
  3490. taphorical extension of the standard meaning). Often this means that
  3491. anyone may look at the sacred object, but destroying it will cause a
  3492. malfunction in whatever it is sacred to. Example: The comment "Register
  3493. seven is sacred to the interrupt handler" appearing in a program would
  3494. be interpreted by a hacker to mean that one part of the program, the
  3495. "interrupt handler", uses register 87, and if any other part of the
  3496. program changes the contents of register 7 there will be dire
  3497. consequences. (This information would be useful to him if he had to
  3498. change a program someone else had written it tells him that new code
  3499. added to the program must avoid using register 7).
  3500.  
  3501. SAGA noun.
  3502.    A CUSPY but BOGUS RAVING story dealing with N RANDOM BROKEN
  3503. people.
  3504.    Here is an example of a saga:
  3505.  
  3506.    Jon L. White (login name JONL) and I (GLS) were office mates at
  3507. MIT for many years, and worked together on the LISP language. One April
  3508. we both flew from Boston to California for a week on research business,
  3509. to consult face to face with some people at Stanford, particularly our
  3510. common friend Richard P. Gabriel (RPG; see GABRIEL).
  3511.    RPG picked us up at the San Francisco airport and drove us back to
  3512. Palo Alto (going LOGICAL SOUTH on Route 101, parallel the EL CAMINO
  3513. BIGNUM). Palo Alto is adjacent to Stanford University, and about forty
  3514. miles south of San Francisco. We ate at The Good Earth, a "health food"
  3515. restaurant, very popular, the sort whose milkshakes all contain honey
  3516. and protein powder. JONL ordered such a shake -- the waitress claimed
  3517. the flavor of the day was "lalaberry". I still have no idea what that
  3518. might be, but it became a running joke. It was the color of raspberry,
  3519. and JONL said it tasted rather bitter. I ate a better tostada there
  3520. than I have ever had in a Mexican restaurant.
  3521.    After this we went to the local Uncle Gaylord's Old Fashioned Ice
  3522. Cream Parlor. They make ice cream fresh daily, in a variety of
  3523. intriguing flavors. It's a chain, and they have a slogan: "If you don't
  3524. live near an Uncle Gaylord's -- MOVE!". Also, Uncle Gaylord (a real
  3525. person) wages a constant battle to force big-name ice cream makers to
  3526. print their ingredients on the package (such as air and plastic and
  3527. other non-natural garbage). JONL and I had first discovered Uncle
  3528. Gaylord's the previous August when we had flown to a computer science
  3529. conference in Berkeley, California, the first time either of us had
  3530. been on the West Coast. When not in the conference sessions, we spent
  3531. our time wandering the length of Telegraph Avenue, which, like Harvard
  3532. Square in Cambridge, Massachusetts, in summer was lined with pic-
  3533. turesque street vendors and interesting little shops. On that street we
  3534. discovered Uncle Gaylord's Berkeley store. The ice cream there was very
  3535. good. During that August visit, JONL went absolutely bananas (so to
  3536. speak) over one particular flavor, ginger honey.
  3537.    Therefore, after eating at The Good Earth -- indeed, after every
  3538. lunch and dinner and before bed during our April visit -- a trip to
  3539. Uncle Gaylord's (the one in Palo Alto) was mandatory. We had arrived on
  3540. a Wednesday, and by Thursday evening we had been there at least four
  3541. times. Each time JONL would get ginger honey ice cream and proclaim to
  3542. all bystanders that "Ginger was the spice that drove the Europeans mad!
  3543. That's why they sought a route to the East! They used it to preserve
  3544. their otherwise off-taste meat." After the third or fourth repetition,
  3545. RPG and I were getting a little tired of this spiel, and we began to
  3546. paraphrase him: "Wow! Ginger! The spice that makes rotten meat taste
  3547. good!" "Say! Why don't we find some dog that's been run over and sat in
  3548. the sun for a week and put some ginger on it for dinner?!" "Right! With
  3549. a lalaberry shake!" And so on. This failed to faze JONL; he took it in
  3550. good humor, as long as we kept returning to Uncle Gaylord's. He loves
  3551. ginger honey ice cream.
  3552.  
  3553.    Now, RPG and his wife KBT (Kathy Tracy) were putting us up
  3554. (putting up with us?) in their home for our visit, so to thank them
  3555. JONL and I took them out to a nice French restaurant of their choosing.
  3556. I unadventurously chose the filet mignon, and KBT had je ne sais quoi
  3557. du jour, but RPG and JONL had lapin (rabbit). (Waitress: "Oui, we have
  3558. fresh rabbit, fresh today." RPG: "Well, JONL, I guess we won't need any
  3559. ginger!")
  3560.    We finished the meal late, about 11:00 PM, which is 2:00 AM Boston
  3561. time, so JONL and I were rather droopy. But it wasn't yet midnight. Off
  3562. to Uncle Gaylord's.
  3563.    Now, the French restaurant was in Redwood City, north of Palo
  3564. Alto. In leaving Redwood City, we somehow got onto Route 101 going
  3565. north instead of south. JONL and I wouldn't have known the difference
  3566. had RPG not mentioned it. We still knew very little of the local
  3567. geography. I did figure out, however, that we were headed in the
  3568. direction of Berkeley, and I half-jokingly suggested that we continue
  3569. north and go to Uncle Gaylord's in Berkeley.
  3570.    RPG said "Fine!" and we drove on for a while and talked. I was
  3571. drowsy, and JONL actually dropped off to sleep for five minutes. When
  3572. he awoke, RPG said, "Gee, JONL, you must have slept all the was over
  3573. the bridge!" -- referring to the one spanning San Francisco Bay. Just
  3574. then we came to a sign that said "University Avenue". I mumbled
  3575. something about working our way over to Telegraph Avenue; RPG said
  3576. "Right!" and maneuvered some more. Eventually we pulled up in front of
  3577. an Uncle Gaylord's.
  3578.    I hadn't really been paying attention because I was too sleepy,
  3579. and I didn't really understand what was happening until RPG let me in
  3580. on it a few moments later, but I was just alert enough to notice that
  3581. we had somehow come to the Palo Alto Uncle Gaylord's after all.
  3582. JONL noticed the resemblance to the Palo Alto store, but hadn't caught
  3583. on. He said, "This isn't the Uncle Gaylord's I went to in Berkeley! It
  3584. looked like a barn! But this place looks just like the one back in Pale
  3585. Alto!"
  3586.    RPG deadpanned, "Wee, this is the one I always come to when I'm in
  3587. Berkeley. They've got two in San Francisco, too. Remember, they're a
  3588. chain.
  3589.    JONL accepted this bit of wisdom. And he was not totally ignorant
  3590. -- he knew perfectly well that University Avenue was in Berkeley, not
  3591. far from Telegraph Avenue. What he didn't know was the there is a
  3592. completely different University Avenue in Palo Alto.
  3593.    JONL went up to the counter and asked for ginger honey. The guy at
  3594. the counter asked whether JONL would like to taste it first --
  3595. evidently their standard procedure with that flavor, as not too many
  3596. people like it.
  3597.    JONL said, "I'm sure I like it. Just give me a cone." The guy
  3598. behind the counter insisted that JONL try just a taste first. "Some
  3599. people think it tastes like soap." JONL insisted, "Look, I love ginger.
  3600. I eat Chinese food. I eat raw ginger roots. I already went through this
  3601. hassle with the guy back in Palo Alto. I know I like that flavor!"
  3602. At the words "back in Palo Alto", the guy behind the counter got a very
  3603. strange look on his face, but said nothing. KBT caught his eye and
  3604. winked. Through my stupor I still hadn't quite grasped what was going
  3605. on and thought RPG was rolling on the floor laughing and clutching his
  3606. stomach just because JONL had launched into his spiel ("makes rotten
  3607. meat a dish for a prince") for the forty-third time. At this point RPG
  3608. clued me in fully.
  3609.    RPG, KBT and I retreated to a table, trying to stifle our
  3610. chuckles. JONL remained at the counter, talking about ice cream with
  3611. the guy b.t.c., comparing Uncle Gaylord's to other ice cream shops and
  3612. generally having a good old time.
  3613.    At length the g.b.t.c. said, "You really like that stuff, huh?".
  3614. JONL said, "Yeah, I've been eating it constantly back in Palo Alto for
  3615. the past two days. In fact, I think that this batch is about as good as
  3616. the cones I got back in Palo Alto!"
  3617.    G.b.t.c. looked him straight in the eye and said, "You're in Palo
  3618. Alto!".
  3619.    JONL turned slowly around and saw the three of us collapse in a
  3620. fit of giggles. He clapped a hand to his forehead and exclaimed, "I've
  3621. been HACKED!".
  3622.  
  3623. SEMI
  3624.    1. (sem'ee) noun. The semicolon character ";". Example: "Commands
  3625. to GRIND are prefixed by semi-semi-star" means that grind commands
  3626. (whatever they are) begin with ";;*", not 1/4 of a star (*).
  3627.    2. (sem'ee, sem'ie) Prefix with words such as "immediately", as a
  3628. qualifier meaning "sort of" or "not really". Example: "When is the
  3629. system coming up?" "Semi-immediately". (That is, maybe not for an
  3630. hour).
  3631.    See CHARACTERS.
  3632.  
  3633. SHIFT LEFT (RIGHT) LOGICAL verb.
  3634.    To move oneself to the left (right). To move out of the way. As an
  3635. imperative, this implies "Get out of that (my) seat! You can move to
  3636. that empty one to the left (right)."
  3637.    This term is used technically to describe the motions of in-
  3638. formation bits in a computer register. Most computers have specific
  3639. instructions with these names to perform such motions. The slang usage
  3640. asks the listener to imagine that he is a BIT and to perform the
  3641. appropriate motion. Other computer instructions, such as "rotate left"
  3642. and EXCH, are also used in this way. The PDP-10 instruction that
  3643. performs left-shifting is called LSH (lish), and so that word is
  3644. sometimes used too.
  3645.  
  3646. SHRIEK
  3647.    The exclamation point character "!".
  3648.    Synonyms: BANG, EXCL. See CHARACTERS.
  3649.  
  3650. 69 adjective.
  3651.    A moderately large quantity. Example: "Go away, I have sixty-nine
  3652. things to do before I GRONK OUT".
  3653.    Actually, any number less than 100 but large enough to have no
  3654. obvious special properties will be recognized as a "large number".
  3655. There is no denying that 69 is the local favorite. I don't know whether
  3656. its origins are related to the obscene interpretation, but I do know
  3657. that 69 decimal = 105 octal, and 69 hexadecimal = 105 decimal, which is
  3658. a nice property.
  3659.  
  3660. SLOP noun.
  3661.    1. A one-sided FUDGE FACTOR, that is, an allowance for error but
  3662. only in one of two directions. For example, if you need a piece of wire
  3663. ten feet long and have to guess when you cut it, you make very sure to
  3664. cut it too long -- by a large amount if necessary -- rather than too
  3665. short by even a little bit. You can always cut off the "slop", but you
  3666. can't paste it back on again. When discrete quantities are involved,
  3667. slop is sometimes introduced to avoid the possibility of a FENCEPOST
  3668. ERROR.
  3669.    2. The ratio of the size or speed of code generated by a compiler
  3670. to that of code carefully written by hand, minus one. Suppose that you
  3671. have the choice to write a program in a so-called high-level language
  3672. such as LISP or PASCAL, or to hand-craft it directly in machine
  3673. language. (The advantage of the former is that you can write the
  3674. program more easily; the advantage of the latter is that the program
  3675. may be more efficient). Then the slop, as defined by the formula given
  3676. above, is the amount of inefficiency in the final program because you
  3677. used a compiler instead of hand-crafting it. This number is often used
  3678. as a measure of the goodness of a compiler: slop below 5% is very good,
  3679. and 10% is usually acceptable for most purposes.
  3680.    The second definition of "slop" is consonant with the first under
  3681. the assumption that a compiler will never produce better code than a
  3682. competent hacker. However, this assumption is not always valid. Recent
  3683. software technology has produced compilers that sometimes produce
  3684. better code than a good hacker because the hacker will get bored
  3685. hand-crafting mountains of code and therefore be less TENSE than he
  3686. could be. Compilers don't get bored.
  3687.  
  3688. SLURP verb.
  3689.    To read a large data file entirely into the computer's main memory
  3690. before beginning to work on it. (This may be contrasted with the
  3691. strategy of reading a small piece at a time, processing it, and then
  3692. reading the next piece.) Example: "This program slurps in a
  3693. 1024-by-1024 matrix of numbers and than CRUNCHES them using an FFT
  3694. (Fast Fourier Transform).
  3695.  
  3696. SMART adjective.
  3697.    1. Said of a program or other object that does THE RIGHT THING in
  3698. a wide variety of complicated circumstances. There is a difference
  3699. between calling a program smart and calling it intelligent; in
  3700. particular, there do not exist any intelligent programs (although some
  3701. researchers in artificial intelligence are working toward that goal).
  3702.    SMART TERMINAL noun. A terminal that has enough computing
  3703. capability to perform useful work independent of the main computer.
  3704.  
  3705.  
  3706. SMOKING CLOVER verb.
  3707.    A psychodelic color MUNCH due to Gosper (see GOSPERISM). This is a
  3708. display HACK that produces a very strong optical illusion. A series of
  3709. nested, wildly colored clover-leaf patterns appear on the screen and
  3710. seem to expand in size indefinitely. When the program is stopped, the
  3711. patterns are frozen; but because you have been watching them expand for
  3712. a while, they suddenly seem to contract.
  3713.    The display changes with a speed that is awesome to anyone who is
  3714. familiar with the computer hardware being used. This speed is made
  3715. possible by a very clever programming technique. Also, the clover-leaf
  3716. pattern is the non-obvious result of another program that is startingly
  3717. simple. For both of these reasons, as well as for the illusion, smoking
  3718. clover is a favorite HACK.
  3719.  
  3720. SMOP (ess'em'oh'pee') noun.
  3721.    An acronym for "a Small Matter Of Programming". A piece of program
  3722. code, not yet written, whose anticipated length is significantly
  3723. greater than its intellectual complexity.
  3724.    This term is used to refer to a program that could obviously be
  3725. written but is not worth the trouble. It is also used ironically to
  3726. imply that a difficult problem can be easily solved because a program
  3727. can be written to do it. The irony is that it is very clear that
  3728. writing such a program will be a great deal of work. Example: "It's
  3729. easy to change a FORTRAN compiler to compile COBOL as well; it's just a
  3730. small matter of programming."
  3731.  
  3732. SNAIL MAIL noun.
  3733.    Mail sent via the Postal Service rather than electronically,
  3734. sometimes written as one word: SnailMail. At its worst, electronic mail
  3735. usually arrives within half an hour. Compare that to the typical three
  3736. days for SnailMail. If you ask a hacker for his mailing address, he
  3737. will usually give you his network address for electronic mail. You have
  3738. to say "What's you SnailMail address?" if you want to send him a
  3739. package.
  3740.  
  3741. SNARF (snahrf) verb.
  3742.    1. To grab, especially a large document or file for the purpose of
  3743. using it either with or without the owner's permission. Examples: "I
  3744. snarfed the DDT manual from you desk last night". "This program snarfs
  3745. all the file directories and searches for files named 'DELETE.ME'".
  3746.    SNARF DOWN. To snarf, sometimes with the connotation of absorbing,
  3747. processing, or understanding. "I think I'll snarf down the list of DDT
  3748. commands so I'll know what's changed recently".
  3749.  
  3750. SOFTWARE ROT noun.
  3751.    A hypothetical disease the existence of which has been deduced
  3752. from the observation that unused programs or FEATURES will stop working
  3753. after sufficient time has passed even if "nothing has changed".
  3754.    Synonym: BIT DECAY.
  3755.  
  3756. SOFTWARILY (sawft-war'-:l-ee) adverb.
  3757.    In a way pertaining to software. "The system is softwarily
  3758. unreliable". Note: the adjective "softwary" is not used. See HARD-
  3759. WARILY.
  3760.  
  3761. SOS
  3762.    1. (ess'oh-ess') noun. A LOSING text editor. Once, back in the
  3763. 1960s, when a text editor was needed for the PDP-6, a hacker CRUFTED
  3764. TOGETHER a quick-and-dirty "stopgap editor" to be used until a better
  3765. one was written. Unfortunately, the old one was never really discarded
  3766. when new ones came along. SOS is a descendant of that editor: SOS means
  3767. "Son Of Stopgap". (Since then other programs similar in style to SOS
  3768. have been written, notably BILOS (bye'lohss) the Brother-in-Law Of
  3769. Stopgap).
  3770.    2. (sahss) verb. To substract one from a number; to decrease the
  3771. amount of something. This SOS means "Subtract One and do not Skip"; it
  3772. is an antonym of AOS, named after a PDP-10 instruction.
  3773.  
  3774. SPACE CADET KEYBOARD noun.
  3775.    A computer keyboard designed at MIT and used on special LISP
  3776. computers. It has seven shifting keys: control, meta, hyper, super,
  3777. shift, top and Greek. (See BUCKY BITS). There are six rows of keys
  3778. instead of the usual four rows, and each row of keys is half again as
  3779. wide as usual. It is jocularly called a "space cadet" keyboard because
  3780. when sitting at it for the first time you feel like a junior space
  3781. cadet at the control panel of a rocket ship: a little bit overwhelmed
  3782. by all the controls.
  3783.  
  3784. SPAZZ (spaz)
  3785.    1. verb. To behave spastically or erratically; more often, to
  3786. commit a single gross error. "I'm sorry I BROKE the LISP system last
  3787. night. I was trying to fix that printing bug and must've spazzed
  3788. royally".
  3789.    2. noun. One who spazzes. "Boy, what a spazz!"
  3790.    3. noun. The result of spazzing; spasticity. Example: "He forgot
  3791. to make the routine that prints numbers handle negative numbers. In
  3792. particular, trying to print -32768 gets an ILL MEM REF." "Boy, what a
  3793. spazz!"
  3794.  
  3795. SPLAT (splat) noun.
  3796.    1. Name used in many places (DEC, IBM, and others) for the ASCII
  3797. asterisk ("*") CHARACTER.
  3798.    2. Name used by some people for the ASCII number-sign ("#")
  3799. CHARACTER.
  3800.    3. Name used by some people for the extended Stanford ASCII
  3801. circle-x character. This character is also called "circle-x", "grinch",
  3802. "blobby", and "FROB", among other names.)
  3803.    4. Name for the semimythical extended Stanford ASCII circle-plus
  3804. character.
  3805.    5. The CANONICAL name for an output routine that outputs whatever
  3806. the local interpretation of "splat" is.
  3807.    Nobody really agrees what character "splat" is, but the term is
  3808. common. See CHARACTERS.
  3809.  
  3810. SQUIGGLE (skwig':l), SQIGGLE (skig':l) noun.
  3811.    The character "~" (tilde). Synonym: TWIDDLE.
  3812. SQUIGGLE BRACKETS noun. The brace characters "{" and "}".
  3813.    See CHARACTERS.
  3814.  
  3815. STATE noun.
  3816.    Condition, situation. Examples: "What's the state of your latest
  3817. hack?" "It's WINNING away." "The SYSTEM tried to read and write the
  3818. disk simultaneously and got into at totally WEDGED state."
  3819.    A standard question is "What's your state?" which means "What are
  3820. you doing?" or "What are you about to do?". Typical answers might be
  3821. "I'm about to GRONK OUT" or "I'm hungry".
  3822.    Another standard question is "What's the state of the world?"
  3823. meaning "What's new?" or "What's going on?".
  3824.  
  3825. STOPPAGE (stahp':j) noun.
  3826.    Extreme LOSSAGE resulting in something (usually vital) becoming
  3827. completely unusable. Example: "The recent system stoppage was caused by
  3828. a FRIED transformer".
  3829.  
  3830. SUPERPROGRAMMER noun.
  3831.    A prolific programmer; one who can code exceedingly well and
  3832. quickly. Not all hackers are superprogrammers, but many are.
  3833.    Productivity can vary from one programmer to another by factors of
  3834. as much as 1000. For example, one programmer might be able to write an
  3835. average of 3 lines of working code in one day, while another, with the
  3836. proper tools and skill, might be able to write 3000 lines of working
  3837. code in one day. This variance is astonishing, appearing in very few
  3838. other areas of human endeavor.
  3839.    Mark Crispin once reported, "While working at Stanford, I wrote
  3840. the first 96-bit leader PDP-10 Network Control Program as my first
  3841. monitor coding project. That took about two weeks, and at the time
  3842. nobody believed I had accomplished it because someone on the East Coast
  3843. had been working on it for over a year and still hadn't finished. I
  3844. understand I rocked some boats when it was proven I had succeeded."
  3845.    The term "superprogrammer" is more commonly used within such
  3846. places as IBM than in the hacker community. It tends to stress
  3847. productivity rather than creativity or ingenuity. Hackers prefer the
  3848. terms HACKER and WIZARD.
  3849.  
  3850. SWAP verb.
  3851.    1. To exchange; to trade places. See EXCH.
  3852.    2. To move information from a fast-access memory to a slow-access
  3853. memory (swap out), or vice versa (swap in). This is a technical term in
  3854. computer science, and often specifically refers to the use of disks as
  3855. "virtual memory". As pieces of data or program are needed, they are
  3856. swapped into main memory for processing; when they are no longer needed
  3857. for the nonce they are swapped out again. The slang use of these terms
  3858. is as a fairly exact analogy referring to people's memories. Cramming
  3859. for an exam might be spoken of as swapping in. If you temporarily
  3860. forget someone's name but then remember it, your excuse is that it was
  3861. swapped out. To "keep something swapped in" means to keep it fresh in
  3862. your memory: "I reread the TECO manual every few months to keep it
  3863. swapped in." If someone interrupts you just as you get a good idea, you
  3864. might say, "Wait a moment while I write this down so I can swap it
  3865. out", implying that if you don't write it down it will get swapped out
  3866. (forgotten) as you talk.
  3867.  
  3868. SYSTEM noun.
  3869.    1. The supervisor program on the computer; the program that is
  3870. responsible for coordinating the activities of the various users of the
  3871. computer.
  3872.    2. The entire computer system, including input/output devices, the
  3873. supervisor program, and possibly other software.
  3874.    3. Any large-scale program.
  3875.    4. Any method or methodology.
  3876.    5. The way things are usually done.
  3877.    6. The existing bureaucracy. "You can't beat the system".
  3878.    SYSTEM HACKER noun. One who hacks the system (in sense 1 only; for
  3879. sense 3 one mentions the particular program, as in LISP hacker or TECO
  3880. hacker).
  3881.  
  3882. T (tee)
  3883.    1. A particular time. See TIME T. (The variable "T" is customarily
  3884. used in physics to represent points in or quantities of time).
  3885.    2. Yes. This word is used in reply to a question, particularly one
  3886. asked using the "-P" convention. Example: "Foodp?" "T". That simple
  3887. interchange means, "Do you want to come eat with us?" "Sure". See NIL.
  3888.    In the LISP language, the name "T" means "true", among other
  3889. things. Some hackers use "T" and "NIL" instead of "yes" and "no" almost
  3890. reflexively. This sometimes causes misunderstandings, when a waiter or
  3891. flight attendant asks if a hacker wants coffee; but of course he will
  3892. be brought a cup of tea instead. As it happens, most hackers like tea
  3893. at least as well as coffee -- particularly those who frequent Chinese
  3894. restaurants -- so it's not that big a problem.
  3895.  
  3896. TALK MODEM
  3897.    A situation in which two or more terminals are logically linked
  3898. together so that whatever is typed on the keyboard of any one appears
  3899. on the screens of all. This is used for conversation via computer. See
  3900. COM MODE and MODE.
  3901.  
  3902. TASTE noun.
  3903.    1. Aesthetic pleasance; the quality in programs which tends to be
  3904. inversely proportional to the number of FEATURES, HACKS, CROCKS, and
  3905. KLUGES programmed into it.
  3906.    TASTY adjective. Aesthetically pleasing; FLAVORFUL. Example: "This
  3907. FEATURE comes in N tasty FLAVORS".
  3908.    Although "tasteful" and "flavorful" are essentially synonyms,
  3909. "taste" and "flavor" are not. "Taste" refers to sound judgment on the
  3910. part of the creator; a program or feature can exhibit taste but cannot
  3911. "have" taste. On the other hand, a feature can have flavor. Also,
  3912. "flavor" has the additional meaning of "kind" or "variety" not shared
  3913. by "taste". "Flavor" is a more popular word among hackers than "taste",
  3914. though both are used.
  3915.  
  3916. TECO (tee'koh)
  3917.    1. noun. A text editor developed at MIT and modified by just about
  3918. everybody. If all the dialects are included, TECO might well be the
  3919. single most prolific editor in use. Noted for its powerful
  3920. pseudo-programming features and its incredibly hairy syntax. As an
  3921. example, here is a TECO program that takes a list of names like this...
  3922.  
  3923.       Loser, J. Random
  3924.       Quux, The Great
  3925.       Dick, Moby
  3926.  
  3927.    ...sorts them alphabetically according to last name, and then puts
  3928. the last name last, removing the comma, to produce this:
  3929.  
  3930.       Moby Dick
  3931.       J. Random Loser
  3932.       The Great Quux
  3933.  
  3934.    The program is:
  3935.  
  3936. [1 J ^ P $ L $ $
  3937. J <.-Z; .,(S,$ -D .)FXl @F ^ B $K :L I $ Gl L> $$
  3938.  
  3939.    In fact, this very program was used to produce the second, sorted,
  3940. list from the first list! The manuscript for this book was produced
  3941. using the EMACS editor, which is built on top of TECO and allows you to
  3942. execute TECO programs. The first time I tried the program it had a BUG;
  3943. I had accidentally omitted the "@" in front of "F ^ B", which, as
  3944. anyone can see, is clearly THE WRONG THING. It worked fine the second
  3945. time. There isn't space to describe all the features of TECO, but I
  3946. will note that " ^ P" means "sort" and "J <.-Z; ... L>" is an idiomatic
  3947. series of commands for "do once for every line".
  3948.    2. verb. To edit using the TECO editor in one of its infinite
  3949. forms; sometimes used to mean "to edit" even when not using TECO!
  3950. Mark Crispin provided these historical notes:
  3951.  
  3952.    Historical note (1): DEC grabbed an ancient version of MIT TECO
  3953. many years ago when it was still a TTY-oriented editor (that is, didn't
  3954. make use of display screens). By now, TECO at MIT is highly dis-
  3955. play-oriented and is actually a programming language for writing
  3956. editors such as EMACS, rather than being used as an editor itself.
  3957. Meanwhile, the outside world's various versions of TECO remain almost
  3958. the same as the MIT version of 1970 or so. DEC recently tried to
  3959. discourage its use, but an underground movement of sorts kept it alive.
  3960.  
  3961.    Historical note (2): Since note (1) was written, I found out that
  3962. DEC tried to force their programmers by administrative decision to use
  3963. a hacked-up and generally lobotomized version of SOS instead of TECO,
  3964. and they revolted.
  3965.  
  3966. TENSE adjective.
  3967.    Of programs, very clever and efficient. A tense piece of code
  3968. often got that way because it was highly BUMMED, but sometimes it was
  3969. just based on a great idea. As an example, this comment was found in a
  3970. clever display routine by Mike Kazar, a student hacker at CMU: "This
  3971. routine is so tense it will bring tears to your eyes. Much thanks to
  3972. Craig Everhart and James Gosling for inspiring this HACK ATTACK."
  3973.    A tense programmer is one who produces tense code. They say that
  3974. PDP-10 code flows from the pencil of hacker Bill Gosper in a maximally
  3975. tense state. I don't waste my time trying to bum even one instruction
  3976. from a PDP-10 program if I learn that Gosper wrote it.
  3977.  
  3978. TENURED GRADUATE STUDENT noun.
  3979.    One who has been in graduate school for ten years (the usual
  3980. maximum is five or six): a "ten-yeared" student. (Get it?) Students
  3981. don't really get tenure, of course, the way professors do, but a
  3982. tenth-year graduate student has probably been around the university
  3983. longer than any nontenured professor.
  3984.  
  3985. TERPRI (tur'pree, t:r'pree) verb.
  3986.    To output a CRLF; to terminate a line of text and start the next
  3987. line.
  3988.    This comes from the name of the LISP routine that performs this
  3989. action. It is a contraction of "TERminate PRInt line".
  3990.  
  3991. THEORY noun.
  3992.    Any idea, plan, story, policy, or set of rules. This is a
  3993. generalization and abuse of the technical meaning. Examples: "What's
  3994. the theory on fixing this TECO loss?" "What's the theory on dinner
  3995. tonight?" ("Chinatown, I guess.") "What's the current theory on letting
  3996. LOSERS on during the day?" "The theory behind this change is to fix the
  3997. following well-known screw..."
  3998.  
  3999. THRASH verb.
  4000.    To move wildly or violently without accomplishing anything useful.
  4001. The connotation is of a maximum of motion with a minimum of ef-
  4002. fectiveness. Computer systems that are overloaded waste most of their
  4003. time SWAPPING information between disk and memory rather than per-
  4004. forming useful computation, and are therefore said to "trash". Someone
  4005. who keeps changing his mind is said to be trashing.
  4006.  
  4007. TIME T noun.
  4008.    A time or instant unspecified but understandable from context.
  4009. Often used in conjunction with a later time, "T+1" or "T+N".
  4010.    Example: "We'll meet on campus at time T or at Louie's at time T
  4011. plus one" means, in the context of going out for dinner, "If we meet at
  4012. Louie's directly, we can meet there a little later than if we meet on
  4013. campus and the have to travel to Louie's". (Louie's is a Chinese
  4014. restaurant in Palo Alto that is a favorite with hackers. Louie makes
  4015. the best potstickers I've ever tasted. See RAV). Had "thirty" been used
  4016. instead of "one", it would have implied that the travel time from
  4017. campus to Louie's is thirty minutes. Whatever time "T" is (and that
  4018. hasn't been decided yet), you can meet half an hour later at Louie's
  4019. than you could on campus and end up eating at the same time.
  4020.    SINCE (OR AT) TIME T EQUALS MINUS INFINITY. A long time ago; for
  4021. as long as anyone can remember; at the time that some particular FROB
  4022. was first designed. "That feature has been BROKEN since time T equals
  4023. minus infinity".
  4024.    Sometimes the word "time" is omitted if there is no danger of
  4025. confusing T as a time with T meaning "yes". See T.
  4026.  
  4027. TOGGLE verb.
  4028.    To change a BIT from whatever state it is in to the other state:
  4029. to change from 1 to 0 or from 0 to 1. This probably comes from "toggle
  4030. switches", such as standard light switches -- though the word toggle
  4031. apparently originally referred to the mechanism that keeps the switch
  4032. in the position to which it is flipped, rather than to the fact that
  4033. the switch has two positions.
  4034.    There are four things you can do to a bit: set it (force it to be
  4035. 1), clear (or zero) it, leave it alone, or toggle it. (Mathematically,
  4036. one would say that there are four distinct boolean-valued functions of
  4037. one boolean argument, but saying that is much less fun than talking
  4038. about toggling bits.)
  4039.  
  4040. TOOL
  4041.    1. verb. To work hard; to study; to "cram" for an exam. This is an
  4042. antonym of sorts for HACK: "tooling" is working without enjoying it.
  4043. The distinction is useful to hackers who are also students: tooling is
  4044. programming or other work done for courses. Example: "I have to tool
  4045. chemistry for a while before I GRONK OUT".
  4046.    2. noun. A person who (seemingly) always tools and never hacks; a
  4047. nerd (or nurd). This term is used throughout MIT: Students refer to
  4048. themselves with more or less pride as "Tech tools".
  4049.  
  4050. TRASH-80 noun.
  4051.    A Radio Shack TRS-80 personal computer.
  4052.    Hackers are accustomed to using powerful, million-dollar com-
  4053. puters, and tend to look down a little on itty-bitty computers that
  4054. can't deliver enough CYCLES for their purposes. This is not to say that
  4055. personal computers can't be useful , or that some hackers don't enjoy
  4056. working with them. Personal computers are getting better all the time.
  4057. Observe, however, that many programs being sold for personal computers
  4058. are developed on much larger computers that provide a better pro-
  4059. gramming environment.
  4060.    The name "Trash-80" is used more as a play on the name of the
  4061. product than as a judgment on the product as compared to its com-
  4062. petitors. The term is used in good spirit by TRS-80 owners as well.
  4063.  
  4064. TTY (tit'ee) noun.
  4065.    1. A computers terminal of the Teletype variety, characterized by
  4066. a noisy mechanical printer, a very limited character set, and poor
  4067. print quality. This term is antiquated (like the TTYs themselves). The
  4068. definition must be considered relative to modern terminals. In their
  4069. heyday, TTYs were useful and fairly reliable workhorses.
  4070.    2. Any computer terminal at all, especially the one that is
  4071. controlling a computer program under discussion, or that the program
  4072. can display information on. Example: "This program lists the current
  4073. file directory on the TTY".
  4074.  
  4075. TWEAK verb.
  4076.    To change slightly, relative to some reference point; to adjust
  4077. finely. If a program is almost correct, rather than figuring out the
  4078. precise problem you might just keep tweaking it until it works.
  4079.    Synonym: TWIDDLE. See also FROBNICATE and FUDGE FACTOR.
  4080.  
  4081. TWENEX (twen'eks) noun.
  4082.    The TOPS-20 operating system distributed by DEC for the
  4083. DECSYSTEM-20 computer, a successor to the PDP-10. There was an
  4084. operating system for the PDP-10 called TOPS-10, so TOPS-20 is an
  4085. obvious name for a DECSYSTEM-20 operating system, event though TOPS-20
  4086. is nothing like TOPS-10. TOPS-10 was a typically CRUFTY operating
  4087. system produced by DEC itself. The firm Bolt, Beranek and Newman (BBN)
  4088. developed its own operating system, called TENEX (for "TEN EXecutive
  4089. system"). DEC obtained the right to use TENEX and extended it to create
  4090. TOPS-20. The term "TWENEX" is therefore a contraction of "twenty
  4091. TENEX". DEC people tend to cringe when they hear TOPS-20 referred to as
  4092. "TWENEX", but the term seems to be catching on nevertheless. The
  4093. abbreviation "20x" is also used and also pronounced "TWENEX".
  4094.  
  4095. TWIDDLE (twid':l)
  4096.    1. noun. The tilde character "~". See CHARACTERS.
  4097.    2. noun. A small and insignificant change to a program. A twiddle
  4098. usually fixes one BUG and generates several new ones.
  4099.    3. verb. To change something in a small way. BITS, for example,
  4100. are often twiddled. Twiddling a switch or knob implies much less sense
  4101. of purpose than TOGGLING or TWEAKING it: see FROBNICATE. To speak of
  4102. twiddling a bit connotes aimlessness, and at best doesn't specify what
  4103. you're doing to the bit; by contrast, toggling a bit has a more
  4104. specific meaning.
  4105.  
  4106. UP adjective.
  4107.    Working; in order. Example: "The Down escalator is up". Antonym:
  4108. DOWN.
  4109.    BRING UP verb. To create a working version and start it. Examples:
  4110. "They just brought up the system". "JONL is going to bring up a new
  4111. LISP compiler tonight". Antonym: TAKE DOWN.
  4112.  
  4113. USER noun.
  4114.    1. Someone doing "real work" with the computer, who uses a
  4115. computer as a means rather than an end. Someone who pays to use a
  4116. computer. See REAL USER.
  4117.    2. A programmer who will believe anything you tell him. One who
  4118. asks silly questions. See LUSER.
  4119.    3. Someone who uses a program from the outside, however skill-
  4120. fully, without getting into the internals of the program. One who
  4121. reports BUGS instead of just going ahead and fixing them.
  4122.    Basically, there are two classes of people who work with a
  4123. program: there are implementors (HACKERS) and users (LOSERS). The users
  4124. are looked down on by hackers to a mild degree because they don't
  4125. understand the full ramifications of the SYSTEM in all its glory. (The
  4126. few users who do are known as REAL WINNERS).
  4127.    The term is a relative one: A consummate hacker may be a user with
  4128. respect to some program he himself does not hack. A LISP hacker might
  4129. be one who maintains LISP or one who uses LISP (but with the skill of a
  4130. hacker). A LISP user is one who uses LISP, whether skillfully or not.
  4131. Thus there is some overlap between the two terms; the subtle
  4132. distinctions must be resolved by context.
  4133.    It is true that users ask questions (of necessity). Sometimes they
  4134. are thoughtful or deep. Very often they are annoying or downright
  4135. stupid, apparently because the user failed to think for two seconds or
  4136. to look in the documentation before bothering the maintainer.
  4137.  
  4138. VANILLA adjective.
  4139.    Standard, usual, of ordinary FLAVOR. "It's just a vanilla
  4140. terminal; it doesn't have any interesting FEATURES".
  4141.    When used of food, this term very often does not mean that the
  4142. food is flavored with vanilla extract! For example, "vanilla-flavored
  4143. wonton soup" (or simply "vanilla wonton soup") means ordinary wonton
  4144. soup, as opposed to hot-and-sour wonton soup.
  4145.    This word differs from CANONICAL in that the latter means "the
  4146. thing you always use (or the way you always do it) unless you have some
  4147. strong reason to do otherwise", whereas "vanilla" simply means
  4148. "ordinary". For example, when MIT hackers go to Colleen's Chinese
  4149. Cuisine, hot-and-sour wonton soup is the canonical wonton soup to get
  4150. (because that is what most of them usually order) even though it isn't
  4151. the vanilla wonton soup.
  4152.  
  4153. VAXEN (vaks':n)
  4154.    The plural usually used among hackers for the DEC VAX computers.
  4155. "Our installation has four PDP-10's and twenty vaxen".
  4156.    The DEC operating system for the VAX is called VMS (for Virtual
  4157. Memory System). It has its advantages, but sometimes it seems to run
  4158. rather slowly. Hence this limerick:
  4159.  
  4160.    There once was a system called VMS
  4161.    Of cycles by no means abstemious
  4162.       It's chock-full of hacks
  4163.       And runs on a VAX
  4164.    And makes my poor stomach all squeamious.
  4165.  
  4166.             -- The Great QUUX
  4167.  
  4168. VIRTUAL adjective.
  4169.    Performing the functions of. Virtual memory acts like real memory
  4170. but isn't. (A virtual memory system uses a combination of a small main
  4171. memory plus a magnetic disk to give the illusion that a computer has a
  4172. large main memory and the disk as needed).
  4173.    The term is synonymous with LOGICAL, except that "virtual" is
  4174. never used with compass directions.
  4175.  
  4176. VISIONARY noun.
  4177.    One who HACKS vision, in the sense of an artificial intelligence
  4178. researcher working on the problem of getting computers to "see" things
  4179. using TV cameras. (There isn't any problem in sending information from
  4180. a TV camera to a computer. The problem is, how can the computer be
  4181. programmed to make use of the camera information? See SMOP).
  4182.  
  4183. WALL interjection.
  4184.    An indication of confusion, usually spoken with a quizzical tone.
  4185. "Wall?" A request for further explication.
  4186.    This seems to be a shortened form of "Hello, wall", apparently
  4187. from the phrase "up against a blank wall". This term is used primarily
  4188. at WPI.
  4189.  
  4190. WALLPAPER noun.
  4191.    A program listing or, especially, a transcript of all or part of a
  4192. login session, showing everything that ever appeared on the terminal.
  4193. (The idea was that the LPT paper for such listings was essentially good
  4194. only for wallpaper to cover windows to keep the light out).
  4195.    WALLPAPER FILE noun. The file that contains the wallpaper
  4196. information before it is actually printed on paper. (Sometimes you
  4197. don't intend ever to produce a real paper copy of the file, because you
  4198. can look at the file directly on your terminal, but it is still called
  4199. a "wallpaper file").
  4200.    This term is used infrequently nowadays, especially since other
  4201. SYSTEMS have developed other terms for the concept (for example: PHOTO
  4202. on TWENEX). This term possibly originated on the ITS system at MIT,
  4203. where the commands to begin and end transcript files are still
  4204. ":WALBEG" and ":WALEND", which produce a file named "WALL PAPER".
  4205.  
  4206. WEDGED adjective.
  4207.    1. To be stuck, incapable of proceeding without help. This is
  4208. different from having CRASHED. If the system has crashed, then it has
  4209. become totally nonfunctioning. If the system is "wedged", it is trying
  4210. to do something but cannot make progress. It may be capable of doing a
  4211. few things, but not be fully operational. For example, the system may
  4212. become wedged if the disk controller FRIES; there are some things you
  4213. can do without using the disks, but not many. Being wedged is slightly
  4214. milder than being "hung". This term is sometimes used as a synonym for
  4215. DEADLOCKED. See also HANG, LOSING, CATATONIA, and BUZZ.
  4216.    2. Of a person, suffering severely from misconceptions. Example:
  4217. "He's totally wedged -- he's convinced that he can levitate through
  4218. meditation". "I'm sorry. I had a BIT set that you were responsible for
  4219. TECO, but I was wedged".
  4220.    WEDGITUDE (wedj'i-tood). The quality or state of being wedged.
  4221.  
  4222. WHEEL noun.
  4223.    1. A "privilege" BIT that, when set, CANONICALLY allows the
  4224. possessor to perform any operation whatsoever on a timesharing system,
  4225. such as read or write any file on the system regardless of protections,
  4226. change or look at any address in the running monitor, CRASH or reload
  4227. the SYSTEM, and kill or create jobs and USER accounts. The term was
  4228. invented on the TENEX operating system and carried over to TOPS-20 and
  4229. others. See TWENEX.
  4230.    2. A person who possesses a set wheel bit (and who therefore has
  4231. great privilege and power on that system). "We need to find a wheel to
  4232. unwedge the hung tape drives".
  4233.    WHEEL WARS. A period during which student wheels HACK each other
  4234. by attempting to log each other our of the system, delete each other's
  4235. files, or otherwise wreak havoc -- usually at the expense of the lesser
  4236. USERS.
  4237.  
  4238. WIN
  4239.    1. verb. To succeed. A program wins if no unexpected conditions
  4240. arise. Antonym: LOSE.
  4241.    2. noun. Success, or a specific instance thereof. A pleasing
  4242. outcome. A FEATURE. Emphatic forms: MOBY win, super win, hyper-win. For
  4243. some reason "suitable win" is also common at MIT, usually in reference
  4244. to a satisfactory solution to a problem. Antonym: LOSS.
  4245.    BIG WIN noun. The results of serendipity.
  4246.    WIN BIG verb. The experience serendipity. "I went shopping and won
  4247. big; there was a two-for-one sale".
  4248.    WIN, WIN interjection.
  4249.    WINNER noun. An unexpectedly good situation, program, programmer,
  4250. or person. Albert Einstein was a winner. Antonym: LOSER.
  4251.    REAL WINNER noun. This term is often used sarcastically, but is
  4252. also used as high praise.
  4253.    WINNAGE (win':j) noun. The situation when a LOSSAGE is corrected
  4254. or when something is winning. Quire rare. Usage: also quite rare.
  4255.    WINNITUDE (win':-tood) noun. The quality of winning (as opposed to
  4256. WINNAGE, which is the result of winning).
  4257.  
  4258. WIZARD noun.
  4259.    1. A person who knows how a complex piece of software or hardware
  4260. works (that is, who GROKS it); someone who can find and fix BUGS
  4261. quickly in an emergency. This term differs somewhat from HACKER.
  4262. Someone is a hacker if he has general hacking ability, but is only a
  4263. wizard with respect to something if he has specific, detailed knowledge
  4264. of that thing. A good hacker could become a wizard of something, given
  4265. the time to study it.
  4266.    2. A person who is permitted to do things forbidden to ordinary
  4267. people. For example, an Adventure wizard at Stanford may play the
  4268. Adventure game during the day, which is forbidden (the program simply
  4269. refuses to play) to most people because it uselessly consumer to many
  4270. CYCLES.
  4271.    WIZARDLY adjective. Pertaining to wizards. A wizardly FEATURE is
  4272. one that only a wizard could understand or use properly.
  4273.  
  4274. WOW
  4275.    The exclamation point character "!". Synonyms: BANG, EXCL, SHRIEK.
  4276. See CHARACTERS.
  4277.  
  4278. WRONG THING, THE noun.
  4279.    The opposite of THE RIGHT THING; more generally, anything that is
  4280. not the right thing. In cases where "the good is the enemy of the
  4281. best", the merely good, while good, is nevertheless the wrong thing.
  4282.  
  4283. XOR (eks'ohr) conjunction.
  4284.    Exclusive or. "A xor B" means "A or B, but definitely not both".
  4285. Example: "I want to get cherry pie xor a banana split". This derives
  4286. from the technical use of the term as a function on truth-values that
  4287. is true if either of two arguments is true but not both.
  4288.  
  4289. XYZZY (eks'wie'zee'zee'wie, zi'zee)
  4290.    The CANONICAL "magic word". This comes from the Adventure game, in
  4291. which the idea is to explore an underground cave with many rooms to
  4292. collect treasure. If you type XYZZY at the appropriate time, you can
  4293. move instantly between two otherwise distant points.
  4294.    If, therefore, you encounter some bit of MAGIC, or more precisely
  4295. some technique for accomplishing magic, you might remark on this quite
  4296. succinctly by saying simply "XYZZY!". This may be translated roughly as
  4297. "Wow! Magic!" Example: "Ordinarily you can't look at someone else's
  4298. screen if he has protected it, but if you type quadruple-bucky-CLEAR
  4299. the system will let you do it anyway" "XYZZY!".
  4300.  
  4301. YOYO MODE noun.
  4302.    A state in which the system is said to be when it rapidly
  4303. alternates several times between being UP and being DOWN.
  4304.  
  4305. YU-SHIANG WHOLE FISH (yoo'hsyang', yoo'shang') noun.
  4306.    The Greek letter lower-case gamma when written with a loop in its
  4307. tail, making it look like a little fish swimming down the page. The
  4308. term is actually the name of a Chinese dish in which a fish is cooked
  4309. whole (not PARSED) and covered with Yu Shiang sauce. This bit of slang
  4310. is used primarily by people on the MIT LISP Machine computers, which
  4311. can display this character on their screens. The term also tends to
  4312. elicit incredulity from people who hear about it secondhand. See
  4313. CHARACTERS.
  4314.  
  4315. ZAP
  4316.    1. noun. Spiciness.
  4317.    2. verb. To make food spicy.
  4318.    3. verb. To make someone "suffer" by making his food spicy. (Most
  4319. hackers love spicy food. Hot-and-sour soup is wimpy unless it makes you
  4320. blow your nose for the rest of the meal).
  4321. ZAPPED adjective. Of food, spicy. "Watch out -- than bean curd disk is
  4322. really zapped tonight". Of people, wiped out of GRONKED because of
  4323. eating spicy food. "I ate the bean curd and got totally zapped. I used
  4324. up two boxes of Kleenex. It was great."
  4325.    This term is used to distinguish between food that is hot (in
  4326. temperature) and food that is "hot", that is, spicy. For example, the
  4327. Chinese appetizer Bon Bon Chicken is a kind of chicken salad that is
  4328. cold but zapped.
  4329.    Hacker Bill Gosper has one of the highest tolerances for zapped
  4330. food. He frequently eats at Louie's, a Chinese restaurant in Palo Alto
  4331. (actually called "Hsi Nan", but hackers who know the owner refer to it
  4332. simply as Louie's); and Louie will frequently try to out-zap him. When
  4333. he does, you don't want to get caught in the cross fire. The food is
  4334. absolutely delicious, but you would think that the sauce contains
  4335. nitric acid.
  4336.  
  4337. ZERO verb.
  4338.    1. To set to zero. Usually said of small pieces of data such as
  4339. BITS or words.
  4340.    2. By extension, to erase; to discard all data from. Said of disks
  4341. and directories, where "zeroing" need not involve actually writing
  4342. zeroes throughout the area being zeroed. One may speak of something
  4343. being LOGICALLY zeroed (forgotten) rather than being physically zeroed
  4344. (erased).
  4345.  
  4346. ZORCH (zorch)
  4347.    1. verb. To move quickly, like a rocket ship training fire behind
  4348. it. "This file transfer program is very fast; it really zorches those
  4349. files through the network".
  4350.    2. noun. Influence, "brownie points"; that intangible and fuzzy
  4351. currency in which favors are measured. "I'd rather not ask him for that
  4352. just yet; I think I've used up my quota of zorch with him for the
  4353. week".
  4354.    3. noun. Energy of ability. "I guess I'll PUNT fixing that bug
  4355. until tomorrow. I've been up for thirty hours and I've run out of
  4356. zorch".
  4357.  
  4358.                           About the Authors
  4359.  
  4360. GLS (gliss) Guy L. Steel Jr.
  4361.    I earned my A.B. degree (1975) in applied mathematics at Harvard
  4362. College, and my S.M. (1977) and Ph.D. (1980) degrees in computer
  4363. science and artificial intelligence at MIT. Since 1980 I have been an
  4364. assistant professor of computer science at Carnegie-Mellon University,
  4365. now on leave. Now I am a Senior Scientist at Tartan Laboratories,
  4366. Incorporated. I have been hacking computers for fifteen years. I am
  4367. married to another hacker, Barbara K. Steele, and we have two children.
  4368. I enjoy cooking Chinese food, doing carpentry, cartooning, singing, and
  4369. playing piano and guitar. But for real fun, nothing can beat an
  4370. all-night hack session, preferably writing hairy TECO code for EMACS.
  4371.    Synonym: QUUX.
  4372.  
  4373. DON (dahn) Donald R. Woods.
  4374.    My father got me interested in computers at the age of 11, back
  4375. when that was still unusual. One of my very first hacks earned me $50
  4376. when his company decided to use it as a demonstration at one of the
  4377. trade fairs. I studied electrical engineering at Princeton (B.S.E.,
  4378. 1975), mainly because they didn't have an undergraduate computer
  4379. science program. Then I came out to Stanford where, after the obli-
  4380. gatory dawdling and hacking, I contrived to earn a Ph.D. (1981) in
  4381. computer science. By that time I was working for the Xerox Corporation,
  4382. and I've been there ever since. Besides contributing to the "jargon
  4383. file", I'm probably best known as coauthor (with Jim Lyon) of the
  4384. INTERCAL Programming Language Reference Manual, and as one of the
  4385. primary authors of the original Adventure program.
  4386.  
  4387. RF (ahr'eff) Raphael A. Finkel.
  4388.    I received an A.B. degree in mathematics and an M.A.T. degree in
  4389. teaching from the University of Chicago in 1972, and in 1976 a Ph.D.
  4390. degree in computer science from Stanford University. I am now an
  4391. associate professor in the Department of Computer Science, University
  4392. of Wisconsin, Madison. Teaching is important to me, and I have received
  4393. two teaching awards: the Sperry Univac 1979-1980 Computer Science
  4394. Professor of the Year Award, and a 1981 University Distinguished
  4395. Teaching Award. My research is in the general area of distribute
  4396. algorithms; in particular, I have built several distributed operating
  4397. systems. Outside of work, I enjoy studying Judaica (Mishna, Gemorra,
  4398. and Yiddish) and playing piano. I don't hack much any more.
  4399.  
  4400. MRC (murk, m:rc) Mark R. Crispin.
  4401.    I earned my B.S. degree (1977) in Technology and Society at
  4402. Stevens Institute of Technology. Since graduating I have been a systems
  4403. programmer at the Computer Science Department at Stanford University.
  4404. I'm married to hacker and aspiring broadcasting personality Lynn Ann
  4405. Gold; my BMW 320i's license plate is California ILVLYNN. Besides
  4406. hacking, we ice skate, ski, go to punk rock concerts, collect science
  4407. fiction artwork, and are dragon lovers and ardent bad movie fanatics.
  4408. One recent thrill was seeing Plan Nine from Outer Space, the winner of
  4409. the Golden Turkey award at the "worst movie ever made" (I agree with
  4410. that assessment). We have several home computers, one of which runs an
  4411. X-rated electronic bulletin-board system popular with many of the
  4412. perverts in the San Francisco Bay Area.
  4413.  
  4414. RMS (ahr'em'ess) Richard M. Stallman.
  4415.    I was built at a laboratory in Manhattan around 1953, and moved to
  4416. the MIT Artificial Intelligence lab in 1971. My hobbies include
  4417. affection, international folk dance, flying, cooking, physics,
  4418. recorder, puns, science fiction fandom, and programming; I magically
  4419. get paid for doing the last one. About a year ago I split up with the
  4420. PDP-10 computer to which I was married for the years. We still love
  4421. each other, but the world is taking us in different directions. For the
  4422. moment I still live in Cambridge, Massachusetts, among our old
  4423. memories. "Richard Stallman" is just my mundane name; you can call me
  4424. "RMS".
  4425.  
  4426. GFF (jef) Geoffrey S. Goodfellow.
  4427.    I've been a hacker ever since I ran into a model-33 TTY connected
  4428. at the lightning speed of 110 bps between my seventh grade school and a
  4429. PDP-10 running TENEX at Stanford University. Since my introduction to
  4430. the world of hacking, formal education has held no allure for me. Two
  4431. weeks into the final quarter of my senior year of high school, I
  4432. dropped out and accepted a job at SRI International in Menlo Park,
  4433. California. I have not returned to class since I flushed school and
  4434. have no degree of any type to my name. Today, my most productive
  4435. hacking is accomplished at my residence where I'm connected up to an
  4436. ersatz PDP-10, a Foonly-4, running TENEX in SRI's computer science lab
  4437. via a 9600 bps leased line. Professionally, my interests are primarily
  4438. computer packet-switched networks, security, office automation,
  4439. electronic mail, cellular radio, and mobile communications.
  4440. Nonprofessionally, I like to hack, travel, eat out at fine restaurants,
  4441. collect cars, and watch an occasional movie on my 6-foot projection TV.
  4442.  
  4443.